Clase: Mongo::Semaphore Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::Semaphore
- 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 https://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 es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve una nueva instancia de Semaphore.
23 24 25 26 |
# Archivo 'lib/mongo/semaphore.rb', línea 23 def inicializar @lock = Mutex (exclusión mutua).Nuevo @cv = ::ConditionVariable.Nuevo end |
Detalles del método de instancia
#broadcast ⇒ objeto
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
36 37 38 39 40 |
# Archivo 'lib/mongo/semaphore.rb', línea 36 def transmisión @lock.sincronizar hacer @cv.transmisión end end |
#signal ⇒ Object
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
42 43 44 45 46 |
# Archivo 'lib/mongo/semaphore.rb', línea 42 def señal @lock.sincronizar hacer @cv.señal end end |
#wait(timeout = nil) ⇒ Objeto
Este método es parte de una API privada. Se debe evitar el uso de este método 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.
30 31 32 33 34 |
# Archivo 'lib/mongo/semaphore.rb', línea 30 def esperar(tiempo de espera = nulo) @lock.sincronizar hacer @cv.esperar(@lock, tiempo de espera) end end |