Итак, у меня есть такие функции, как read
, которые можно вызывать одновременно из нескольких потоков. но также у меня есть функция для write
, которая должна заблокировать все эти read
функции. Где взять пример создания такой архетектуры?
Я понимаю, что мы можем иметь:
mutable boost::mutex the_read_mutex;
mutable boost::mutex the_write_mutex;
и
void write()
{
// make all new readers wait and wait for all other currently running read threads();
}
void read()
{
// do not make all new readers wait, and wait for all currently running write thread()
}
Так как это сделать?