http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46455
--- Comment #17 from Zouzou <internet at 123gen dot com> 2010-11-16 08:37:02 UTC --- (In reply to comment #16) > Created attachment 22413 [details] > add destructors in <ext/concurrence.h> > could you try applying this patch to ext/concurrence.h and let me know if it > works on Windows? I'm testing on Linux, FreeBSD and OpenBSD but they all use > the pthreads model and I don't have a Windows system to test on. hi, the patch first produced a trivial compiler error: In file included from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/memory:7 8:0, from test.cpp:15: c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/ext/concurrence.h: In destruct or '__gnu_cxx::__recursive_mutex::~__recursive_mutex()': c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/ext/concurrence.h:224:35: erro r: cannot convert '__gthread_recursive_mutex_t*' to '__gthread_mutex_t*' for arg ument '1' to 'void __gthread_mutex_destroy(__gthread_mutex_t*)' i worked around it by making the pointer cast explicit in the __recursive_mutex destructor: __gthread_mutex_destroy(reinterpret_cast<__gthread_mutex_t*>(&_M_mutex)); it then compiles fine and correctly fixes the issue at hand.