c++ - thread - condition variable cplusplus
¿Puedes combinar std:: recursive_mutex con std:: condition_variable? (2)
Puede hacerlo con un std::condition_variable_any
que puede tomar cualquier tipo de bloqueable, pero llano std::condition_variable
está especializado para std::unique_lock<std::mutex>
.
¿Puedes combinar std::recursive_mutex
con std::condition_variable
, lo que significa hacer algo como esto:
std::unique_lock<std::recursive_mutex> lock(some_recursive_mutex)
some_condition_var.wait(lock);
Si no está permitido, ¿por qué no?
Estoy usando VC ++ 11.
Puede, si usa std::condition_variable_any
, lo que permite cualquier tipo de objeto que admita el concepto Lockable.
Sin embargo, en el caso de mutex recursivo, debe asegurarse de que el hilo dado solo haya bloqueado el mutex recursivo una vez, ya que la variable de condición solo usará el método de unlock
en el unique_lock
una vez durante la espera.