From: Charlie S. <cf...@in...> - 2005-12-27 09:20:57
|
When running the Ruby test-suite on MingW/Windows all the director test cases fail. There are two issues, both caused by the latest changes to directors.swg. First, a struct Guard is being added to the code unconditionally and second a private member variable on Director called swig_mutex_own is being added. Here is a proposed patch that fixes these issues by conditionally defining/undefining the appropriate parts of code. For the first issue, I am simply syncing the Ruby with the Python code in director_h.swg. However, for the second issue, the Python code has the same issue with swig_mutex_own as the Ruby code. Last, under MINGW neither __THREADS__ or __PTHREADS__ is defined. I'll go ahead and apply this in the next day or so unless someone sees any problems. Thanks, Charlie cvs diff -u -- director.swg (in directory C:\msys\src\SWIG\Lib\ruby\) Index: director.swg =================================================================== RCS file: /cvsroot/swig/SWIG/Lib/ruby/director.swg,v retrieving revision 1.11 diff -u -r1.11 director.swg --- director.swg 27 Nov 2005 02:30:45 -0000 1.11 +++ director.swg 27 Dec 2005 09:13:41 -0000 @@ -257,11 +257,6 @@ #endif #ifdef __PTHREAD__ -# define SWIG_GUARD(mutex) Guard _guard(mutex) -#else -# define SWIG_GUARD(mutex) -#endif - struct Guard { pthread_mutex_t *_mutex; @@ -276,6 +271,10 @@ pthread_mutex_unlock(_mutex); } }; +# define SWIG_GUARD(mutex) Guard _guard(mutex) +#else +# define SWIG_GUARD(mutex) +#endif /* director base class */ class Director { @@ -371,8 +370,9 @@ private: typedef std::map<void*, GCItem_var> ownership_map; mutable ownership_map owner; +#ifdef __PTHREAD__ mutable pthread_mutex_t swig_mutex_own; - +#endif public: template <typename Type> ***** CVS exited normally with code 1 ***** |