5 #ifndef _MONO_UTILS_OS_EVENT_H_
6 #define _MONO_UTILS_OS_EVENT_H_
11 #include "mono-os-mutex.h"
13 #ifndef MONO_INFINITE_WAIT
14 #define MONO_INFINITE_WAIT ((guint32) 0xFFFFFFFF)
17 #define MONO_OS_EVENT_WAIT_MAXIMUM_OBJECTS 64
20 MONO_OS_EVENT_WAIT_RET_SUCCESS_0 = 0,
21 MONO_OS_EVENT_WAIT_RET_ALERTED = -1,
22 MONO_OS_EVENT_WAIT_RET_TIMEOUT = -2,
25 typedef struct _MonoOSEvent MonoOSEvent;
27 typedef void (*MonoOSEventFreeCb) (MonoOSEvent*);
39 mono_os_event_init (MonoOSEvent *event, gboolean initial);
42 mono_os_event_destroy (MonoOSEvent *event);
45 mono_os_event_set (MonoOSEvent *event);
48 mono_os_event_reset (MonoOSEvent *event);
51 mono_os_event_wait_one (MonoOSEvent *event, guint32 timeout, gboolean alertable);
54 mono_os_event_wait_multiple (MonoOSEvent **events, gsize nevents, gboolean waitall, guint32 timeout, gboolean alertable);
56 #endif /* _MONO_UTILS_OS_EVENT_H_ */