We don't need an explicit barrier when setting initialized from
vlc_mutex_init(). The caller shall synchronize memory after
vlc_mutex_init() from any thread calling vlc_mutex_lock() anyway,
since locking an unitialized non-static mutex is undefined.
/* This creates a recursive mutex. This is OK as fast mutexes have
* no defined behavior in case of recursive locking. */
InitializeCriticalSection (&p_mutex->mutex);
+ p_mutex->initialized = 1;
return 0;
#endif
#elif defined( WIN32 )
InitializeCriticalSection( &p_mutex->mutex );
- InterlockedIncrement (&p_mutex->initialized);
- barrier ();
+ p_mutex->initialized = 1;
return 0;
#endif
VLC_THREAD_ASSERT ("destroying mutex");
#elif defined( WIN32 )
- InterlockedDecrement (&p_mutex->initialized);
+ assert (p_mutex->initialized);
DeleteCriticalSection (&p_mutex->mutex);
#endif