давайте рассмотрим пример ..
некоторая сложная работа разделена на 4 потока
thread -A is calling function_A
thread -B is calling function_B
thread -C is calling function_C
thread -D is calling function_D
теперь условие состоит в том, что поток A, B, C может работать одновременно, но когда-либо потокD выполняет function_D, он увидит, выполняет ли какой-нибудь поток из A, B, C эту функцию?если да, то он будет ожидать их завершения, и когда никакой поток из a, b, c не выполняет там функцию, поток D начнет выполнять функцию D.
Как я могу это сделать?Любая идея ерш?
РЕДАКТИРОВАТЬ: function_A, function_B, function_c использует один дескриптор.и function_D закрывает этот дескриптор.Когда какая-либо функция использует этот дескриптор, она не должна закрываться функцией function_d.