Spec-Zone.ru › Nim

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

© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/locks.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API