[vlc-devel] commit: Fix logic. ( Rémi Denis-Courmont )
git version control
git at videolan.org
Mon Oct 6 17:50:17 CEST 2008
vlc | branch: master | Rémi Denis-Courmont <rdenis at simphalempin.com> | Mon Oct 6 18:46:56 2008 +0300| [0cd4a19b15817cac6b2920a25093d1d4f8990454] | committer: Rémi Denis-Courmont
Fix logic.
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.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=0cd4a19b15817cac6b2920a25093d1d4f8990454
---
src/misc/threads.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/misc/threads.c b/src/misc/threads.c
index e1d6255..988c997 100644
--- a/src/misc/threads.c
+++ b/src/misc/threads.c
@@ -205,6 +205,7 @@ int vlc_mutex_init( vlc_mutex_t *p_mutex )
/* 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
@@ -231,8 +232,7 @@ int vlc_mutex_init_recursive( vlc_mutex_t *p_mutex )
#elif defined( WIN32 )
InitializeCriticalSection( &p_mutex->mutex );
- InterlockedIncrement (&p_mutex->initialized);
- barrier ();
+ p_mutex->initialized = 1;
return 0;
#endif
@@ -252,7 +252,7 @@ void vlc_mutex_destroy (vlc_mutex_t *p_mutex)
VLC_THREAD_ASSERT ("destroying mutex");
#elif defined( WIN32 )
- InterlockedDecrement (&p_mutex->initialized);
+ assert (p_mutex->initialized);
DeleteCriticalSection (&p_mutex->mutex);
#endif
More information about the vlc-devel
mailing list