Spec-Zone.ru › Ruby 3.4
  1. MonitorMixin::
  2. ConditionVariable

class MonitorMixin::ConditionVariable

Родительский класс:
Object

TODO: Этот класс не описан в Nutshell.

Поскольку MonitorMixin.new_cond возвращает ConditionVariable, а в примере выше вызываются while_wait и signal, этот класс следует описать.

Открытые методы экземпляра

broadcast () Показать исходный код
# File ext/monitor/lib/monitor.rb, line 139
def broadcast
  @monitor.mon_check_owner
  @cond.broadcast
end

Пробуждает все потоки, ожидающие эту блокировку.

signal () Показать исходный код
# File ext/monitor/lib/monitor.rb, line 131
def signal
  @monitor.mon_check_owner
  @cond.signal
end

Пробуждает первый в очереди поток, ожидающий эту блокировку.

wait (timeout = nil) Показать исходный код
# File ext/monitor/lib/monitor.rb, line 105
def wait(timeout = nil)
  @monitor.mon_check_owner
  @monitor.wait_for_cond(@cond, timeout)
end

Освобождает блокировку, удерживаемую в связанном мониторе, и ожидает; при пробуждении блокировка захватывается повторно.

Если задано timeout, этот метод возвращает управление по истечении timeout секунд, даже если ни один другой поток не вызовет signal.

wait_until () Показать исходный код
# File ext/monitor/lib/monitor.rb, line 122
def wait_until
  until yield
    wait
  end
end

Повторно вызывает wait, пока переданный блок не вернёт истинное значение.

wait_while () Показать исходный код
# File ext/monitor/lib/monitor.rb, line 113
def wait_while
  while yield
    wait
  end
end

Повторно вызывает wait, пока переданный блок возвращает истинное значение.

Ruby Core © 1993–2025 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

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