Spec-Zone.ru › OCaml 4.14

Модуль Semaphore.Counting

module Counting: sig .. end
type t 

Тип счетных семафоров.

val make : int -> t

make n возвращает новый счетный семафор с начальным значением n. Начальное значение n должно быть неотрицательным.

  • Возбуждает Invalid_argument если n < 0
val release : t -> unit

release s увеличивает значение семафора s. Если другие потоки ожидают на s, один из них возобновляется. Если текущее значение s равно max_int, значение семафора не изменяется, и возбуждается исключение Sys_error для сигнализации о переполнении.

  • Возбуждает Sys_error если значение семафора переполнит max_int
val acquire : t -> unit

acquire s блокирует вызывающий поток до тех пор, пока значение семафора s не будет равно нулю, затем атомарно уменьшает значение s и возвращает.

val try_acquire : t -> bool

try_acquire s немедленно возвращает false если значение семафора s равно нулю. В противном случае значение s атомарно уменьшается и try_acquire s возвращает true.

val get_value : t -> int

get_value s возвращает текущее значение семафора s. Текущее значение может быть изменено в любое время конкурирующими операциями Semaphore.Counting.release и Semaphore.Counting.acquire. Следовательно, операция get_value является конкурентной, и её результат следует использовать только для отладки или информационных сообщений.

© 1995-2022 INRIA.
https://v2.ocaml.org/releases/5.0/htmlman/libref/Semaphore.Counting.html

Spec-Zone.ru

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