Example #1
0
	std::unique_ptr<Work> waitForWork()
	{
		LockMutex m(queueMutex);

		while (queue.empty() && queueAlive)
			SDL_CondWait(queueCond, queueMutex);

		if (!queueAlive)
			throw StopWorker();

		auto ret = std::move(queue[0]);
		queue.erase(queue.begin());
		return ret;
	}
Example #2
0
	// Signals stop to worker
	// and wait when it stopped
	void SaveStopWorker() {
		StopWorker();
		worker.wait();
	}