5 #ifndef _MONO_UTILS_OS_EVENT_H_
6 #define _MONO_UTILS_OS_EVENT_H_
11 #include <mono/utils/mono-publib.h>
12 #include "mono-os-mutex.h"
14 #define MONO_INFINITE_WAIT ((guint32) 0xFFFFFFFF)
16 #define MONO_OS_EVENT_WAIT_MAXIMUM_OBJECTS 64
19 MONO_OS_EVENT_WAIT_RET_SUCCESS_0
= 0,
20 MONO_OS_EVENT_WAIT_RET_ALERTED
= -1,
21 MONO_OS_EVENT_WAIT_RET_TIMEOUT
= -2,
24 typedef struct _MonoOSEvent MonoOSEvent
;
26 typedef void (*MonoOSEventFreeCb
) (MonoOSEvent
*);
38 mono_os_event_init (MonoOSEvent
*event
, gboolean initial
);
41 mono_os_event_destroy (MonoOSEvent
*event
);
44 mono_os_event_set (MonoOSEvent
*event
);
47 mono_os_event_reset (MonoOSEvent
*event
);
49 MONO_API MonoOSEventWaitRet
50 mono_os_event_wait_one (MonoOSEvent
*event
, guint32 timeout
, gboolean alertable
);
52 MONO_API MonoOSEventWaitRet
53 mono_os_event_wait_multiple (MonoOSEvent
**events
, gsize nevents
, gboolean waitall
, guint32 timeout
, gboolean alertable
);
55 #endif /* _MONO_UTILS_OS_EVENT_H_ */