void Semaphore::init()
{
#ifdef WIN32
- count=0;
- sem=CreateSemaphore(0, 0, 32, 0);
+ count = 0;
+ sem = CreateSemaphore(0, 0, 32, 0);
#else
pthread_cond_init(&sem, 0);
#endif
if(count==0)
return 0;
- int ret=!ReleaseSemaphore(sem, 1, 0);
+ int ret = !ReleaseSemaphore(sem, 1, 0);
- unsigned old_count=count;
+ unsigned old_count = count;
mutex->unlock();
while(count==old_count)
Sleep(0);
{
if(count==0)
return 0;
- int ret=!ReleaseSemaphore(sem, count, 0);
+ int ret = !ReleaseSemaphore(sem, count, 0);
mutex->unlock();
while(count)
{
++count;
mutex->unlock();
- DWORD ret=WaitForSingleObject(sem, INFINITE);
+ DWORD ret = WaitForSingleObject(sem, INFINITE);
mutex->lock();
--count;
int Semaphore::wait(const Time::TimeDelta &d)
{
#ifndef WIN32
- Time::TimeStamp ts=Time::now()+d;
+ Time::TimeStamp ts = Time::now()+d;
timespec timeout;
- timeout.tv_sec=ts.raw()/1000000;
- timeout.tv_nsec=(ts.raw()%1000000)*1000;
+ timeout.tv_sec = ts.raw()/1000000;
+ timeout.tv_nsec = (ts.raw()%1000000)*1000;
- int r=pthread_cond_timedwait(&sem, &mutex->mutex, &timeout);
+ int r = pthread_cond_timedwait(&sem, &mutex->mutex, &timeout);
if(r==ETIMEDOUT)
return 1;
else if(r)
#else
++count;
mutex->lock();
- DWORD ret=WaitForSingleObject(sem, (DWORD)(d/Time::usec));
+ DWORD ret = WaitForSingleObject(sem, (DWORD)(d/Time::usec));
mutex->unlock();
--count;
return ret==WAIT_OBJECT_0;