Class interprocess_recursive_mutex
boost::interprocess::interprocess_recursive_mutex
Synopsis
Description
Обертывает interprocess_mutex, который может быть размещен в общей памяти и может быть разделен между процессами. Позволяет блокировать несколько звонков одним и тем же способом. Позволяет тайм-блокировать попытки
interprocess_recursive_mutex
public
construct/copy/destruct
interprocess_recursive_mutex();
Конструктор. Бросает interprocess_исключение
на ошибку.
~interprocess_recursive_mutex();
Destructor. Если какой-либо процесс использует мутекс после того, как деструктор называется, результат не определен. Не бросает.
interprocess_recursive_mutex
public member functions
void lock();
Последствия: Вызывающая нить пытается получить право собственности на mutex, и если другая нить имеет право собственности на mutex, она ждет, пока не сможет получить право собственности. Если поток приобретает право собственности на mutex, mutex должен быть разблокирован тем же mutex. Мутекс должен быть разблокирован столько же раз, сколько и заблокирован. Броски: interprocess_ Exception
по ошибке.
bool try_lock;
Попытки заблокировать interprocess_mutex
, возвращает ложное, когда interprocess_mutex
уже заблокирован, возвращает истинное при успехе. Мутекс должен быть разблокирован столько же раз, сколько и заблокирован. Броски: interprocess_ Исключение
, если обнаружена серьезная ошибка
booltimed_lock(constposix_time::ptime&abs_time);
Следует блокировать interprocess_mutex
, если interprocess_mutex
не может быть заблокирован до abs_time, возвращает ложное. Мутекс должен быть разблокирован столько же раз, сколько и заблокирован. Броски: interprocess_ Exception
, если обнаружена серьезная ошибка
void unlock();
Последствия: Вызывающий поток освобождает исключительное право собственности на mutex. Если mutex поддерживает рекурсивную блокировку, mutex должен быть разблокирован столько же раз, сколько и заблокирован. Броски: interprocess_ Exception
по ошибке.