2017-10-27 5 views
0

Ist es möglich? Ich möchte mit einem condition_variable anstelle eines normalen Mutex timed_mutex verwenden, aber es wird nicht kompiliert und Blick auf Quellenmit std :: condition_variable mit std :: timed_mutex

void 
    wait(unique_lock<mutex>& __lock, _Predicate __p) 
    { 
while (!__p()) 
    wait(__lock); 
    } 

(Vertiefung mit freundlicher Genehmigung von libC++ Autoren, wirklich?)

So sieht es aus wie es ist in der Tat auf gerade Mutexe beschränkt, nicht zeitlich abgestimmt. Aber warum??

Antwort

2

Ja, std::conditional_variable ist auf std::unique_lock<std::mutex> beschränkt. Sie können jedoch das allgemeinere std::condition_variable_any mit allem verwenden, das eine compatible interface hat.

+0

uh. Vielen Dank. Ich wünschte, es wäre ein bisschen einfacher zu entdecken ... –

Verwandte Themen