Clase: Mongo::Semáforo Privado

Hereda:
Objeto
  • Objeto
Mostrar todo
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

Detalles del constructor

#inicializarSemá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ónObjeto

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

#signalObject

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