(svn r18656) -Feature: Add event semaphore support for OS/2

pull/155/head
orudge 15 years ago
parent 1bb2e7bba5
commit 5c88f36d64

@ -94,16 +94,19 @@ private:
class ThreadMutex_OS2 : public ThreadMutex { class ThreadMutex_OS2 : public ThreadMutex {
private: private:
HMTX mutex; HMTX mutex;
HEV event;
public: public:
ThreadMutex_OS2() ThreadMutex_OS2()
{ {
DosCreateMutexSem(NULL, &mutex, 0, FALSE); DosCreateMutexSem(NULL, &mutex, 0, FALSE);
DosCreateEventSem(NULL, &event, 0, FALSE);
} }
/* virtual */ ~ThreadMutex_OS2() /* virtual */ ~ThreadMutex_OS2()
{ {
DosCloseMutexSem(mutex); DosCloseMutexSem(mutex);
DosCloseEventSem(event);
} }
/* virtual */ void BeginCritical() /* virtual */ void BeginCritical()
@ -115,6 +118,18 @@ public:
{ {
DosReleaseMutexSem(mutex); DosReleaseMutexSem(mutex);
} }
/* virtual */ void WaitForSignal()
{
this->EndCritical();
DosWaitEventSem(event, SEM_INDEFINITE_WAIT);
this->BeginCritical();
}
/* virtual */ void SendSignal()
{
DosPostEventSem(event);
}
}; };
/* static */ ThreadMutex *ThreadMutex::New() /* static */ ThreadMutex *ThreadMutex::New()

Loading…
Cancel
Save