Semaphore base SyncObject

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@154 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Tyler Dauwalder
2002-07-12 20:28:41 +00:00
parent 4dd5a911be
commit b7ac06cfaa
+25
View File
@@ -0,0 +1,25 @@
#include <SemaphoreSyncObject.h>
#include <cppunit/Exception.h>
SemaphoreSyncObject::SemaphoreSyncObject()
: fSemId(create_sem(1, "CppUnitSync"))
{
if (fSemId < B_OK)
throw CppUnit::Exception("SemaphoreSyncObject::SemaphoreSyncObject() -- Error creating semaphore");
}
SemaphoreSyncObject::~SemaphoreSyncObject() {
delete_sem(fSemId);
}
void
SemaphoreSyncObject::lock() {
if (acquire_sem(fSemId) < B_OK)
throw CppUnit::Exception("SemaphoreSyncObject::lock() -- Error acquiring semaphore");
}
void
SemaphoreSyncObject::unlock() {
if (release_sem(fSemId) < B_OK)
throw CppUnit::Exception("SemaphoreSyncObject::unlock() -- Error releasing semaphore");
}