1#include <SemaphoreSyncObject.h>
2#include <cppunit/Exception.h>
3
4_EXPORT
5SemaphoreSyncObject::SemaphoreSyncObject()
6	: fSemId(create_sem(1, "CppUnitSync"))
7{
8	if (fSemId < B_OK)
9		throw CppUnit::Exception("SemaphoreSyncObject::SemaphoreSyncObject() -- Error creating semaphore");
10}
11
12_EXPORT
13SemaphoreSyncObject::~SemaphoreSyncObject() {
14	delete_sem(fSemId);
15}
16
17_EXPORT
18void
19SemaphoreSyncObject::lock() {
20	if (acquire_sem(fSemId) < B_OK)
21		throw CppUnit::Exception("SemaphoreSyncObject::lock() -- Error acquiring semaphore");
22}
23
24_EXPORT
25void
26SemaphoreSyncObject::unlock() {
27	if (release_sem(fSemId) < B_OK)
28		throw CppUnit::Exception("SemaphoreSyncObject::unlock() -- Error releasing semaphore");
29}
30