|
From: Axel S. <si...@co...> - 2010-05-20 06:38:24
|
diffing dir...
Sun May 9 22:05:30 EDT 2010 Hamish Mackenzie <ham...@go...>
* Use win32 critical section in hsgthread.c finalizer code
Ignore-this: 6bfaec66f7c3453aaa13d96072ff013f
{
hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 21
+ *
+ * Also g_static_mutex_lock and g_static_mutex_unlock cause problems ghci
+ * on windows so using a Win32 critical section instead
hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 31
+#if defined( WIN32 )
+#include <windows.h>
+#endif
+
hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 37
-static GStaticMutex gtk2hs_finalizer_mutex;
+#if defined( WIN32 )
+static int mutex_initialised = 0;
+static CRITICAL_SECTION gtk2hs_finalizer_mutex;
+#else
+static GStaticMutex gtk2hs_finalizer_mutex = G_STATIC_MUTEX_INIT;
+#endif
hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 62
+
+#if defined( WIN32 )
+ if (!mutex_initialised) {
+ InitializeCriticalSection( >k2hs_finalizer_mutex );
+ mutex_initialised = 1;
+ }
+ EnterCriticalSection( >k2hs_finalizer_mutex );
+#else
hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 71
+#endif
hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 98
+#if defined( WIN32 )
+ LeaveCriticalSection( >k2hs_finalizer_mutex );
+#else
hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 102
+#endif
hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 110
+#if defined( WIN32 )
+ if (!mutex_initialised) {
+ InitializeCriticalSection( >k2hs_finalizer_mutex );
+ mutex_initialised = 1;
+ }
+ EnterCriticalSection( >k2hs_finalizer_mutex );
+#else
hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 118
+#endif
hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 131
+#if defined( WIN32 )
+ LeaveCriticalSection( >k2hs_finalizer_mutex );
+#else
hunk ./gtk/Graphics/UI/Gtk/General/hsgthread.c 135
+#endif
hunk ./gtk/gtk.cabal 250
+ extra-libraries: kernel32
}
|