summaryrefslogtreecommitdiff
path: root/libs/pbd/pbd/semutils.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-07-11 12:46:05 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-07-11 12:46:05 -0400
commite70db68fac1adbb5c9823231aa800658c4d7cc12 (patch)
treeae89ffba1ad57bd5b32929276d10efa1ece06d46 /libs/pbd/pbd/semutils.h
parent8b63e005a15afb4cf769fd0c7fc91e48dde254a2 (diff)
Add implementation for ProcessSemaphore on windows
Diffstat (limited to 'libs/pbd/pbd/semutils.h')
-rw-r--r--libs/pbd/pbd/semutils.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/libs/pbd/pbd/semutils.h b/libs/pbd/pbd/semutils.h
index 6f5f0e9331..0e8bed0512 100644
--- a/libs/pbd/pbd/semutils.h
+++ b/libs/pbd/pbd/semutils.h
@@ -19,13 +19,20 @@
#ifndef __pbd_semutils_h__
#define __pbd_semutils_h__
+#ifdef WIN32
+#include <windows.h>
+#else
#include <semaphore.h>
+#endif
namespace PBD {
class ProcessSemaphore {
private:
-#ifdef __APPLE__
+#ifdef WIN32
+ HANDLE _sem;
+
+#elif __APPLE__
sem_t* _sem;
sem_t* ptr_to_sem() const { return _sem; }
#else
@@ -37,8 +44,15 @@ class ProcessSemaphore {
ProcessSemaphore (const char* name, int val);
~ProcessSemaphore ();
+#ifdef WIN32
+
+ int signal ();
+ int wait ();
+
+#else
int signal () { return sem_post (ptr_to_sem()); }
int wait () { return sem_wait (ptr_to_sem()); }
+#endif
};
}