Clase: Mongo::Semáforo Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::Semáforo
- Definido en:
- lib/mongo/semaphore.rb
Overview
Esta clase forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse 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.
Colapso del resumen del método de instancia
- #difusión ⇒ Objeto privada
-
#inicializar ⇒ Semáforo
constructor
privada
Una nueva instancia de Semaphore.
- #signal ⇒ Object privada
-
#esperar(tiempo de espera = nulo) ⇒ Objeto
privada
Espera a que se envíe la señal al semáforo hasta que se agoten los 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 @cerrar = Mutex.Nuevo @cv = ::Variable de condición.Nuevo end |
Detalles del método de instancia
#difusión ⇒ 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 transmitir @cerrar.sincronizar hacer @cv.transmitir 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 @cerrar.sincronizar hacer @cv.señal end end |
#esperar(tiempo de espera = nulo) ⇒ 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 se señalice el semáforo hasta que se agoten los segundos de tiempo de espera. Si no se señaliza, regresa después de que transcurran 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) @cerrar.sincronizar hacer @cv.esperar(@cerrar, tiempo de espera) end end |