[threads] Make OSEvent alertable to fix bug #51653 (#4341)
[mono.git] / mono / utils / os-event.h
index 81260b983614f0a79063c357ffe34ad618d87044..280b19ad8ac9cd263caf4d592911003e892597e3 100644 (file)
@@ -27,16 +27,13 @@ struct _MonoOSEvent {
 #ifdef HOST_WIN32
        gpointer handle;
 #else
-       mono_mutex_t mutex;
-       mono_cond_t cond;
-       gboolean manual;
+       GPtrArray *conds;
        gboolean signalled;
-       guint32 set_count;
 #endif
 };
 
 void
-mono_os_event_init (MonoOSEvent *event, gboolean manual, gboolean initial);
+mono_os_event_init (MonoOSEvent *event, gboolean initial);
 
 void
 mono_os_event_destroy (MonoOSEvent *event);
@@ -48,9 +45,9 @@ void
 mono_os_event_reset (MonoOSEvent *event);
 
 MonoOSEventWaitRet
-mono_os_event_wait_one (MonoOSEvent *event, guint32 timeout);
+mono_os_event_wait_one (MonoOSEvent *event, guint32 timeout, gboolean alertable);
 
 MonoOSEventWaitRet
-mono_os_event_wait_multiple (MonoOSEvent **events, gsize nevents, gboolean waitall, guint32 timeout);
+mono_os_event_wait_multiple (MonoOSEvent **events, gsize nevents, gboolean waitall, guint32 timeout, gboolean alertable);
 
 #endif /* _MONO_UTILS_OS_EVENT_H_ */