std/locks
Source Edit Этот модуль содержит поддержку Nim для блокировок и переменных состояния.
Импорты
syslocks
Типы
Cond = SysCond
- Переменная состояния Nim Source Edit
Lock = SysLock
- Блокировка Nim; не определено, является ли она повторно входящей! Source Edit
Процедуры
proc `$`(lock: Lock): string {....raises: [], tags: [], forbids: [].} - Source Edit
proc acquire(lock: var Lock) {.inline, ...raises: [], tags: [], forbids: [].} - Получает заданную блокировку. Source Edit
proc broadcast(cond: var Cond) {.inline, ...raises: [], tags: [], forbids: [].} - Разблокирует все потоки, которые в настоящее время заблокированы на указанной переменной состояния
cond. Source Edit proc deinitCond(cond: Cond) {.inline, ...raises: [], tags: [], forbids: [].} - Освобождает ресурсы, связанные с переменной состояния. Source Edit
proc deinitLock(lock: Lock) {.inline, ...raises: [], tags: [], forbids: [].} - Освобождает ресурсы, связанные с блокировкой. Source Edit
proc initCond(cond: var Cond) {.inline, ...raises: [], tags: [], forbids: [].} - Инициализирует заданную переменную состояния. Source Edit
proc initLock(lock: var Lock) {.inline, ...raises: [], tags: [], forbids: [].} - Инициализирует заданную блокировку. Source Edit
proc release(lock: var Lock) {.inline, ...raises: [], tags: [], forbids: [].} - Освобождает заданную блокировку. Source Edit
proc signal(cond: var Cond) {.inline, ...raises: [], tags: [], forbids: [].} - Отправляет сигнал переменной состояния
cond. Source Edit proc tryAcquire(lock: var Lock): bool {.inline, ...raises: [], tags: [],
forbids: [].} - Попытка получить заданную блокировку. Возвращает
true при успехе. Source Edit proc wait(cond: var Cond; lock: var Lock) {.inline, ...raises: [], tags: [],
forbids: [].} - Ожидание переменной состояния
cond. Source Edit
Шаблоны
template withLock(a: Lock; body: untyped)
- Получает заданную блокировку, выполняет операторы в теле и освобождает блокировку после завершения выполнения операторов. Source Edit