version 1.1.2.3, 2006/07/28 20:46:41
|
version 1.1.2.4, 2006/07/28 21:19:53
|
|
|
| |
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
| |
static const int SEM_VALUE_MAX = 0x0000ffff; |
static const int PEGASUS_SEM_VALUE_MAX = 0x0000ffff; |
| |
//============================================================================== | //============================================================================== |
// | // |
|
|
pthread_mutex_init (&_rep.mutex, NULL); | pthread_mutex_init (&_rep.mutex, NULL); |
pthread_cond_init (&_rep.cond, NULL); | pthread_cond_init (&_rep.cond, NULL); |
| |
if (initial > SEM_VALUE_MAX) |
if (initial > PEGASUS_SEM_VALUE_MAX) |
_count = SEM_VALUE_MAX - 1; |
_count = PEGASUS_SEM_VALUE_MAX - 1; |
else | else |
_count = initial; | _count = initial; |
| |
|
|
| |
Semaphore::Semaphore(Uint32 initial) | Semaphore::Semaphore(Uint32 initial) |
{ | { |
if(initial > SEM_VALUE_MAX) |
if(initial > PEGASUS_SEM_VALUE_MAX) |
initial = SEM_VALUE_MAX - 1; |
initial = PEGASUS_SEM_VALUE_MAX - 1; |
sem_init(&_rep.sem,0,initial); | sem_init(&_rep.sem,0,initial); |
_rep.owner = Threads::self(); | _rep.owner = Threads::self(); |
} | } |
|
|
| |
Semaphore::Semaphore(Uint32 initial) | Semaphore::Semaphore(Uint32 initial) |
{ | { |
if(initial > SEM_VALUE_MAX) |
if(initial > PEGASUS_SEM_VALUE_MAX) |
initial = SEM_VALUE_MAX - 1; |
initial = PEGASUS_SEM_VALUE_MAX - 1; |
_count = initial; | _count = initial; |
_rep.owner = Threads::self(); | _rep.owner = Threads::self(); |
_rep.sem = CreateSemaphore(NULL, initial, SEM_VALUE_MAX, NULL); |
_rep.sem = CreateSemaphore(NULL, initial, PEGASUS_SEM_VALUE_MAX, NULL); |
} | } |
| |
Semaphore::~Semaphore() | Semaphore::~Semaphore() |