Exemplo n.º 1
0
bool SemaphoreSet::tryWait(size_t semIndex)
{
	validateIndex(semIndex);
	if (semOperation(_semId, semIndex, -1, IPC_NOWAIT) == -1)
	{
		if (errno == EAGAIN)
			return false;
		else
			throw IpcError("SemaphoreSet::tryWait(): semop() failed", errno);
	}
	else
		return true;
}
Exemplo n.º 2
0
void MutexRelease ( int key )
{
	semOperation ( key, 0, 1 );
} // Fin de MutexRelease
Exemplo n.º 3
0
void MutexTake ( int key )
{
	semOperation ( key, 0, -1 );
} // Fin de MutexTake
Exemplo n.º 4
0
void SemaphoreSet::signal(size_t semIndex)
{
	validateIndex(semIndex);
	if (semOperation(_semId, semIndex, 1) == -1)
		throw IpcError("SemaphoreSet::signal(): semop() failed", errno);
}