[vlc-commits] commit: gcrypt: use vlc_global_mutex ( Rémi Denis-Courmont )

git at videolan.org git at videolan.org
Thu Jun 3 22:55:53 CEST 2010


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Thu Jun  3 23:29:35 2010 +0300| [89717011bc83fcf86467544aa8ba43de13e22657] | committer: Rémi Denis-Courmont 

gcrypt: use vlc_global_mutex

This saves a few mutexes, but it does not really solve gcrypt
reentrancy. gcry_control() should only be called once for all per copy
of gcrypt in the memory. This is hard to conciliate with dlopen().

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=89717011bc83fcf86467544aa8ba43de13e22657
---

 include/vlc_gcrypt.h |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/include/vlc_gcrypt.h b/include/vlc_gcrypt.h
index eec15c2..4bb14f7 100644
--- a/include/vlc_gcrypt.h
+++ b/include/vlc_gcrypt.h
@@ -1,7 +1,7 @@
 /*****************************************************************************
  * vlc_gcrypt.h: VLC thread support for gcrypt
  *****************************************************************************
- * Copyright (C) 2004-2008 Rémi Denis-Courmont
+ * Copyright (C) 2004-2010 Rémi Denis-Courmont
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -90,14 +90,13 @@ static inline void vlc_gcrypt_init (void)
      * plugins linking with gcrypt, and some underlying libraries may use it
      * behind our back. Only way is to always link gcrypt statically (ouch!) or
      * have upstream gcrypt provide one shared object per threading system. */
-    static vlc_mutex_t lock = VLC_STATIC_MUTEX;
     static bool done = false;
 
-    vlc_mutex_lock (&lock);
+    vlc_global_lock (VLC_GCRYPT_MUTEX);
     if (!done)
     {
         gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_vlc);
         done = true;
     }
-    vlc_mutex_unlock (&lock);
+    vlc_global_unlock (VLC_GCRYPT_MUTEX);
 }



More information about the vlc-commits mailing list