Clase: Mongo::DistinguishingSemaphore Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::DistinguishingSemaphore
- Definido en:
- lib/mongo/separador_distintivo.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.
Este es un semáforo que distingue las esperas que terminan por la expiración del tiempo de espera de las que terminan por el lanzamiento del semáforo.
Resumen del método de instancia colapsar
- #transmisión ⇒ Objeto privado
-
#inicializar ⇒ DistinguishingSemaphore
constructor
privado
Una nueva instancia de DistinguishingSemaphore.
- #signal ⇒ Object privado
-
#wait(timeout = nil) ⇒ true | false
privado
Espera a que el semáforo del sistema sea activado hasta el tiempo límite de espera en segundos.
Detalles del Constructor
#inicializar ⇒ DistinguishingSemaphore
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 DistinguishingSemaphore.
23 24 25 26 27 |
# Archivo 'lib/mongo/distinguishing_semaphore.rb', línea 23 def inicializar @lock = Mutex (exclusión mutua).Nuevo @cv = ::ConditionVariable.Nuevo @queue = [] 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.
43 44 45 46 47 48 |
# Archivo 'lib/mongo/distinguishing_semaphore.rb', línea 43 def transmisión @lock.sincronizar hacer @queue.push(true) @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.
50 51 52 53 54 55 |
# Archivo 'lib/mongo/distinguishing_semaphore.rb', línea 50 def señal @lock.sincronizar hacer @queue.push(true) @cv.señal end end |
#esperar(tiempo_de_espera = nil) ⇒ verdadero | falso
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.
34 35 36 37 38 39 40 41 |
# Archivo 'lib/mongo/distinguishing_semaphore.rb', línea 34 def esperar(tiempo de espera = nulo) @lock.sincronizar hacer @cv.esperar(@lock, tiempo de espera) (!@queue.¿vacío?).tocar hacer @queue.borrar end end end |