Exemple #1
0
status_t release_sem(int handle, int count)
{
	Semaphore *sem = static_cast<Semaphore*>(GetResource(handle, OBJ_SEMAPHORE));
	if (sem == 0)
		return E_BAD_HANDLE;
		
	sem->Release(count);
	sem->ReleaseRef();
	return E_NO_ERROR;
}
Exemple #2
0
status_t acquire_sem(int handle, bigtime_t timeout)
{
	Semaphore *sem = static_cast<Semaphore*>(GetResource(handle, OBJ_SEMAPHORE));
	if (sem == 0)
		return E_BAD_HANDLE;
		
	status_t ret = sem->Wait(timeout);
	sem->ReleaseRef();
	return ret;
}