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
*);
36 mono_os_event_init (MonoOSEvent
*event
, gboolean initial
);
39 mono_os_event_destroy (MonoOSEvent
*event
);
42 mono_os_event_set (MonoOSEvent
*event
);
45 mono_os_event_reset (MonoOSEvent
*event
);
48 mono_os_event_wait_one (MonoOSEvent
*event
, guint32 timeout
, gboolean alertable
);
51 mono_os_event_wait_multiple (MonoOSEvent
**events
, gsize nevents
, gboolean waitall
, guint32 timeout
, gboolean alertable
);
53 #endif /* _MONO_UTILS_OS_EVENT_H_ */