From b7ac06cfaae5b22d76eedbc432e1bf8f091ddc73 Mon Sep 17 00:00:00 2001 From: Tyler Dauwalder Date: Fri, 12 Jul 2002 20:28:41 +0000 Subject: [PATCH] Semaphore base SyncObject git-svn-id: file:///srv/svn/repos/haiku/trunk/current@154 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/tools/cppunit/SemaphoreSyncObject.cpp | 25 +++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/tools/cppunit/SemaphoreSyncObject.cpp diff --git a/src/tools/cppunit/SemaphoreSyncObject.cpp b/src/tools/cppunit/SemaphoreSyncObject.cpp new file mode 100644 index 0000000000..017a7b0401 --- /dev/null +++ b/src/tools/cppunit/SemaphoreSyncObject.cpp @@ -0,0 +1,25 @@ +#include +#include + +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"); +}