void concurrency::condition_variable::wait(mutex&m)
{
	#ifdef _WIN32
	m.unlock();
	
	HANDLE handles[] = {cond_var.signal, cond_var.broadcast};
	WaitForMultipleObjects(2, handles, false, INFINITE);
	
	m.lock();
	#else
		pthread_mutex_t mtx = m.get_mutex();
		pthread_cond_wait (&cond_var, &mtx);
	#endif
}
Exemple #2
0
 virtual void wait(mutex &mut)
 {
     pthread_cond_wait(&this->pthcond, mut.get_mutex());
 }
Exemple #3
0
    virtual void wait(mutex &mut)
    {
		::SleepConditionVariableCS(&this->cv, mut.get_mutex(), INFINITE);
    }
Exemple #4
0
    virtual void wait(mutex &mut)
    {
		SDL_CondWait(this->sdlcond, mut.get_mutex());
    }