Версия:

Модуль latch

Модуль latch

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)

Применение защелки. Бесконечно ожидает момента, когда текущий файбер может получить доступ к защелке.

param box_latch_t* latch:
 применяемая защелка
int box_latch_trylock(box_latch_t *latch)

Попытка применить защелку. Возвращается незамедлительно, если защелка поставлена.

Параметры:
  • latch (box_latch_t*) – применяемая защелка
Результат:

статус операции. 0 – успешно, 1 – защелка поставлена

Тип результата:

целое число

void box_latch_unlock(box_latch_t *latch)

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

Параметры:
  • latch (box_latch_t*) – отменяемая защелка