-#elif defined( WIN32 )
- /* Initialize counter */
- p_condvar->i_waiting_threads = 0;
-
- /* Misc init */
- p_condvar->i_win9x_cv = p_this->p_libvlc->i_win9x_cv;
- p_condvar->SignalObjectAndWait = p_this->p_libvlc->SignalObjectAndWait;
-
- if( (p_condvar->SignalObjectAndWait && !p_this->p_libvlc->b_fast_mutex)
- || p_condvar->i_win9x_cv == 0 )
- {
- /* Create an auto-reset event. */
- p_condvar->event = CreateEvent( NULL, /* no security */
- FALSE, /* auto-reset event */
- FALSE, /* start non-signaled */
- NULL ); /* unnamed */
-
- p_condvar->semaphore = NULL;
- return !p_condvar->event;
- }
- else
- {
- p_condvar->semaphore = CreateSemaphore( NULL, /* no security */
- 0, /* initial count */
- 0x7fffffff, /* max count */
- NULL ); /* unnamed */
-
- if( p_condvar->i_win9x_cv == 1 )
- /* Create a manual-reset event initially signaled. */
- p_condvar->event = CreateEvent( NULL, TRUE, TRUE, NULL );
- else
- /* Create a auto-reset event. */
- p_condvar->event = CreateEvent( NULL, FALSE, FALSE, NULL );
-
- InitializeCriticalSection( &p_condvar->csection );
-
- return !p_condvar->semaphore || !p_condvar->event;
- }
-