Clase: Mongo::Semaphore Privado

Hereda:
Objeto
  • Objeto
Mostrar todo
Definido en:
lib/mongo/semaphore.rb

Overview

Esta clase forma parte de una API privada. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada en el futuro.

Esta es una implementación de semáforo que básicamente encapsula el código de muestra en ruby-doc.org/stdlib-2.0.0/libdoc/thread/rdoc/ConditionVariable.html.

Resumen del método de instancia colapsar

Detalles del constructor

#inicializarSemáforo

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve una nueva instancia de Semaphore.



24
25
26
27
# Archivo 'lib/mongo/semaphore.rb', línea 24

def inicializar
  @lock = Mutex (exclusión mutua).Nuevo
  @cv = ::Variable de condición.Nuevo
end

Detalles del método de instancia

#broadcastobjeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



37
38
39
40
41
# Archivo 'lib/mongo/semaphore.rb', línea 37

def transmisión
  @lock.sincronizar hacer
    @cv.transmisión
  end
end

#signalObject

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



43
44
45
46
47
# Archivo 'lib/mongo/semaphore.rb', línea 43

def señal
  @lock.sincronizar hacer
    @cv.señal
  end
end

#wait(timeout = nil) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Espera a que el semáforo sea señalizado hasta los segundos de tiempo de espera. Si no se señala el semáforo, se devuelve después de los segundos de tiempo de espera.



31
32
33
34
35
# Archivo 'lib/mongo/semaphore.rb', línea 31

def esperar(tiempo de espera = nulo)
  @lock.sincronizar hacer
    @cv.esperar(@lock, tiempo de espera)
  end
end