Ejemplo n.º 1
0
void
VolumeWorker::MessageReceived(BMessage *message)
{
	switch (message->what) {
		case kTriggerWork:
			_Work();
			break;

		default:
			BLooper::MessageReceived(message);
	}
}
Ejemplo n.º 2
0
void
Worker::_Worker()
{
	while (true) {
		MutexLocker locker(fLock);

		if (fTasks.IsEmpty()) {
			ConditionVariableEntry entry;
			fCondition.Add(&entry);
			locker.Unlock();

			status_t status = entry.Wait();
			if (status != B_OK)
				break;
		} else
			locker.Unlock();

		_Work();
	}
}
Ejemplo n.º 3
0
void
Worker::WaitFor(Task& task)
{
	_Work();
	task.Wait();
}