Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Модуль latch

type box_latch_t

Лок для среды кооперативной многозадачности

box_latch_t *box_latch_new(void)

Выделить память и инициализировать новый лок.

Возвращает

выделенный объект лока

Тип возвращаемого значения

box_latch_t *

void box_latch_delete(box_latch_t *latch)

Уничтожить лок и освободить занимаемую им память.

Параметры:

  • latch (box_latch_t*) — лок, который требуется уничтожить

void box_latch_lock(box_latch_t *latch)

Захватить лок. Ожидание длится неограниченно долго, пока текущий файбер не получит доступ к локу. Начиная с версии 2.11.0, локи захватываются строго в том порядке, в котором были запрошены.

Параметры:

  • latch (box_latch_t*) — лок, который требуется захватить

int box_latch_trylock(box_latch_t *latch)

Попытаться захватить лок. Управление возвращается сразу же, если лок уже захвачен.

Параметры:

  • latch (box_latch_t*) — лок, который требуется захватить

Возвращает

статус операции. 0 — успех, 1 — лок захвачен

Тип возвращаемого значения

int

void box_latch_unlock(box_latch_t *latch)

Освободить лок. Файбер, вызывающий эту функцию, должен владеть локом.

Параметры:

  • latch (box_latch_t*) — лок, который требуется освободить