Clase: Mongo::DistinguishingSemaphore Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::Semáforo distintivo
- 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 finalizan debido a que se alcanza el tiempo de espera de las esperas que finalizan debido a que se señaliza el 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
-
#esperar(tiempo de espera = nulo) ⇒ verdadero | falso
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 distintivo
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 DistinguishingSemaphore.
24 25 26 27 28 |
# Archivo 'lib/mongo/distinguishing_semaphore.rb', línea 24 def inicializar @lock = Mutex (exclusión mutua).Nuevo @cv = ::Variable de condición.Nuevo @queue = [] 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.
44 45 46 47 48 49 |
# Archivo 'lib/mongo/distinguishing_semaphore.rb', línea 44 def transmisión @lock.sincronizar hacer @queue.push(true) @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.
51 52 53 54 55 56 |
# Archivo 'lib/mongo/distinguishing_semaphore.rb', línea 51 def señal @lock.sincronizar hacer @queue.push(true) @cv.señal end end |
#esperar(tiempo de espera = nulo) ⇒ verdadero | falso
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.
35 36 37 38 39 40 41 42 |
# Archivo 'lib/mongo/distinguishing_semaphore.rb', línea 35 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 |