2 #ifndef _MONO_UTILS_OS_EVENT_H_
3 #define _MONO_UTILS_OS_EVENT_H_
8 #include "mono-os-mutex.h"
10 #ifndef MONO_INFINITE_WAIT
11 #define MONO_INFINITE_WAIT ((guint32) 0xFFFFFFFF)
14 #define MONO_OS_EVENT_WAIT_MAXIMUM_OBJECTS 64
17 MONO_OS_EVENT_WAIT_RET_SUCCESS_0 = 0,
18 MONO_OS_EVENT_WAIT_RET_ALERTED = -1,
19 MONO_OS_EVENT_WAIT_RET_TIMEOUT = -2,
22 typedef struct _MonoOSEvent MonoOSEvent;
24 typedef void (*MonoOSEventFreeCb) (MonoOSEvent*);
39 mono_os_event_init (MonoOSEvent *event, gboolean manual, 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);
54 mono_os_event_wait_multiple (MonoOSEvent **events, gsize nevents, gboolean waitall, guint32 timeout);
56 #endif /* _MONO_UTILS_OS_EVENT_H_ */