Skip to content
Snippets Groups Projects
Commit 99d5954a authored by rswindell's avatar rswindell
Browse files

Create sem_reset() macro (NOT POSIX).

parent 9677d74d
No related branches found
No related tags found
No related merge requests found
......@@ -61,6 +61,7 @@ extern "C" {
#include <semaphore.h> /* POSIX semaphores */
#endif
/* NOT POSIX */
int sem_trywait_block(sem_t *sem, unsigned long timeout);
#elif defined(_WIN32)
......@@ -78,6 +79,7 @@ extern "C" {
#define sem_destroy(psem) CloseHandle(*(psem))
/* No Win32 implementation for sem_getvalue() */
/* NOT POSIX */
#define sem_trywait_block(psem,t) (WaitForSingleObject(*(psem),t)==WAIT_OBJECT_0?0:(errno=EAGAIN,-1))
#elif defined(__OS2__) /* These have *not* been tested! */
......@@ -95,6 +97,9 @@ extern "C" {
#endif
/* Change semaphore to "unsignaled" (NOT POSIX) */
#define sem_reset(psem) while(sem_trywait(psem)==0)
#if defined(__cplusplus)
}
#endif
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment