From 00ede07b133e435b3fcdaf8e83ad0e1ec6a7a808 Mon Sep 17 00:00:00 2001 From: orudge Date: Tue, 29 Dec 2009 04:27:39 +0000 Subject: (svn r18656) -Feature: Add event semaphore support for OS/2 --- src/thread/thread_os2.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/thread') diff --git a/src/thread/thread_os2.cpp b/src/thread/thread_os2.cpp index 1145e8e41..c6c7db7df 100644 --- a/src/thread/thread_os2.cpp +++ b/src/thread/thread_os2.cpp @@ -94,16 +94,19 @@ private: class ThreadMutex_OS2 : public ThreadMutex { private: HMTX mutex; + HEV event; public: ThreadMutex_OS2() { DosCreateMutexSem(NULL, &mutex, 0, FALSE); + DosCreateEventSem(NULL, &event, 0, FALSE); } /* virtual */ ~ThreadMutex_OS2() { DosCloseMutexSem(mutex); + DosCloseEventSem(event); } /* virtual */ void BeginCritical() @@ -115,6 +118,18 @@ public: { DosReleaseMutexSem(mutex); } + + /* virtual */ void WaitForSignal() + { + this->EndCritical(); + DosWaitEventSem(event, SEM_INDEFINITE_WAIT); + this->BeginCritical(); + } + + /* virtual */ void SendSignal() + { + DosPostEventSem(event); + } }; /* static */ ThreadMutex *ThreadMutex::New() -- cgit v1.2.3-54-g00ecf