mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r18656) -Feature: Add event semaphore support for OS/2
This commit is contained in:
parent
1f2159b54e
commit
00ede07b13
|
@ -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…
Reference in New Issue