#if defined(THREADED_RTS)\r
HsWord32 res;\r
\r
- ACQUIRE_LOCK(&event_buf_mutex);\r
if (io_manager_event != INVALID_HANDLE_VALUE) {\r
+ ACQUIRE_LOCK(&event_buf_mutex);\r
if (next_event == 0) {\r
res = 0; // no event to return\r
} else {\r
}\r
}\r
}\r
+ RELEASE_LOCK(&event_buf_mutex);\r
} else {\r
res = 0;\r
}\r
- RELEASE_LOCK(&event_buf_mutex);\r
// debugBelch("readIOManagerEvent: %d\n", res);\r
return res;\r
#else\r
{\r
#if defined(THREADED_RTS)\r
// debugBelch("sendIOManagerEvent: %d\n", event);\r
- ACQUIRE_LOCK(&event_buf_mutex);\r
if (io_manager_event != INVALID_HANDLE_VALUE) {\r
+ ACQUIRE_LOCK(&event_buf_mutex);\r
if (next_event == EVENT_BUFSIZ) {\r
errorBelch("event buffer overflowed; event dropped");\r
} else {\r
} \r
event_buf[next_event++] = (StgWord32)event;\r
}\r
+ RELEASE_LOCK(&event_buf_mutex);\r
}\r
- RELEASE_LOCK(&event_buf_mutex);\r
#endif\r
} \r
\r
Capability *cap;\r
if (io_manager_event == INVALID_HANDLE_VALUE) {\r
cap = rts_lock();\r
+#if defined(mingw32_HOST_OS) && defined(__PIC__)\r
+ rts_evalIO(cap,_imp__base_GHCziConc_ensureIOManagerIsRunning_closure,NULL);\r
+#else\r
rts_evalIO(cap,&base_GHCziConc_ensureIOManagerIsRunning_closure,NULL);\r
+#endif\r
rts_unlock(cap);\r
}\r
}\r