6 #ifndef INCLUDED_ILM_THREAD_SEMAPHORE_H
7 #define INCLUDED_ILM_THREAD_SEMAPHORE_H
21 #if ILMTHREAD_THREADING_ENABLED
22 # if ILMTHREAD_HAVE_POSIX_SEMAPHORES
23 # include <semaphore.h>
24 # elif defined(__APPLE__)
25 # include <dispatch/dispatch.h>
26 # elif (defined (_WIN32) || defined (_WIN64))
34 # include <condition_variable>
55 #if ILMTHREAD_HAVE_POSIX_SEMAPHORES
57 mutable sem_t _semaphore;
59 #elif defined(__APPLE__)
60 mutable dispatch_semaphore_t _semaphore;
62 #elif (defined (_WIN32) || defined (_WIN64))
64 mutable HANDLE _semaphore;
66 #elif ILMTHREAD_THREADING_ENABLED
75 unsigned long numWaiting;
77 std::condition_variable nonZero;
80 mutable sema_t _semaphore;
84 void operator = (
const Semaphore&
s) =
delete;
85 Semaphore (
const Semaphore& s) =
delete;
86 void operator = (Semaphore&& s) =
delete;
87 Semaphore (Semaphore&& s) =
delete;
93 #endif // INCLUDED_ILM_THREAD_SEMAPHORE_H
GLsizei const GLfloat * value
#define ILMTHREAD_INTERNAL_NAMESPACE_HEADER_ENTER
#define ILMTHREAD_INTERNAL_NAMESPACE_HEADER_EXIT
#define ILMTHREAD_EXPORT_TYPE