From: Marcelo M. <mar...@us...> - 2005-12-28 08:46:52
|
Update of /cvsroot/swig/SWIG/Lib/ruby In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22335/Lib/ruby Modified Files: director.swg Log Message: fix missing __PTHREAD__ Index: director.swg =================================================================== RCS file: /cvsroot/swig/SWIG/Lib/ruby/director.swg,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** director.swg 27 Nov 2005 02:30:45 -0000 1.11 --- director.swg 28 Dec 2005 08:46:45 -0000 1.12 *************** *** 245,261 **** /* Simple thread abstraction for pthreads on win32 */ #ifdef __THREAD__ ! #define __PTHREAD__ ! #if defined(_WIN32) || defined(__WIN32__) ! #define pthread_mutex_lock EnterCriticalSection ! #define pthread_mutex_unlock LeaveCriticalSection ! #define pthread_mutex_t CRITICAL_SECTION ! #define MUTEX_INIT(var) CRITICAL_SECTION var ! #else ! #include <pthread.h> ! #define MUTEX_INIT(var) pthread_mutex_t var = PTHREAD_MUTEX_INITIALIZER ! #endif #endif #ifdef __PTHREAD__ # define SWIG_GUARD(mutex) Guard _guard(mutex) #else --- 245,275 ---- /* Simple thread abstraction for pthreads on win32 */ #ifdef __THREAD__ ! # define __PTHREAD__ ! # if defined(_WIN32) || defined(__WIN32__) ! # define pthread_mutex_lock EnterCriticalSection ! # define pthread_mutex_unlock LeaveCriticalSection ! # define pthread_mutex_t CRITICAL_SECTION ! # define SWIG_MUTEX_INIT(var) var ! # else ! # include <pthread.h> ! # define SWIG_MUTEX_INIT(var) var = PTHREAD_MUTEX_INITIALIZER ! # endif #endif #ifdef __PTHREAD__ + struct Guard + { + pthread_mutex_t *_mutex; + + Guard(pthread_mutex_t &mutex) : _mutex(&mutex) + { + pthread_mutex_lock(_mutex); + } + + ~Guard() + { + pthread_mutex_unlock(_mutex); + } + }; # define SWIG_GUARD(mutex) Guard _guard(mutex) #else *************** *** 372,376 **** typedef std::map<void*, GCItem_var> ownership_map; mutable ownership_map owner; ! mutable pthread_mutex_t swig_mutex_own; --- 386,392 ---- typedef std::map<void*, GCItem_var> ownership_map; mutable ownership_map owner; ! #ifdef __PTHREAD__ ! static pthread_mutex_t swig_mutex_own; ! #endif |