2017-10-27 3 views
0

가능합니까? 내가 대신 condition_variable있는 일반 뮤텍스의 timed_mutex를 사용하고자하지만, 컴파일하고 소스std :: condition_variable을 std :: timed_mutex와 함께 사용

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

보고되지 않습니다 (정말, libc의 ++ 저자의 들여 쓰기 예의?)

그래서 그것처럼 보인다 실제로는 직접적인 뮤텍스 (mutex)에 국한되며 시간이 초과 된 뮤텍스에는 국한되지 않습니다. 그러나 왜?

답변

2

예, std::conditional_variablestd::unique_lock<std::mutex>으로 제한됩니다. 그러나보다 일반적인 std::condition_variable_anycompatible interface이있는 것으로 사용할 수 있습니다.

+0

어. 감사. 발견하기가 좀 더 쉬웠 으면 좋겠어. –