Clase: Mongo::Semaphore Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::Semáforo
- 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
- #transmisión ⇒ Objeto privado
-
#inicializar ⇒ Semáforo
constructor
privado
Una nueva instancia de Semaphore.
- #signal ⇒ Object privado
-
#wait(timeout = nil) ⇒ Objeto
privado
Espera a que el semáforo del sistema sea activado hasta el tiempo límite de espera en segundos.
Detalles del constructor
#inicializar ⇒ Semá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
#broadcast ⇒ 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.
37 38 39 40 41 |
# Archivo 'lib/mongo/semaphore.rb', línea 37 def transmisión @lock.sincronizar hacer @cv.transmisión end end |
#signal ⇒ Object
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 |