Classe: Mongo::Semafore Private
- Herda:
-
Objeto
- Objeto
- Mongo::Semafor
- Definido em:
- build/ruby-driver-v2.19/lib/mongo/semafore.rb
Visão geral
Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.
Esta é uma implementação de semáforo essencialmente encapsulando o código de exemplo em ruby-doc.org/stdlib-2.0.0/libdoc/thread/rdoc/ConditionVariable.html.
Recolhimento do Resumo do método de instância
- #transmissão ➤ Objeto privado
-
#inicializar ➤ Semáforo
construtor
privado
Uma nova instância do Semafore.
- #signal ⇒ Object privado
-
#wait(timeout = nil) ➤ Objeto
privado
Aguarda que o semáforo seja sinalizado até o tempo limite segundos.
Detalhes do construtor
#inicializar ➤ Semáforo
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna uma nova instância do Semafore.
24 25 26 27 |
# File 'build/ruby-driver-v2.19/lib/mongo/semafore.rb', linha 24 def inicializar @ bloqueio = Mutex.Novo @cv = ::CondiçãoVariável.Novo end |
Detalhes do método de instância
#transmissão ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
37 38 39 40 41 |
# File 'build/ruby-driver-v2.19/lib/mongo/semafore.rb', linha 37 def transmissão @ bloqueio.sincronizar fazer @cv.transmissão end end |
#signal ⇒ Object
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
43 44 45 46 47 |
# File 'build/ruby-driver-v2.19/lib/mongo/semafore.rb', linha 43 def sinal @ bloqueio.sincronizar fazer @cv.sinal end end |
#wait(timeout = nil) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Aguarda que o semáforo seja sinalizado até o tempo limite segundos. Se o semáforo não for sinalizado, retornará após segundos de tempo limite.
31 32 33 34 35 |
# File 'build/ruby-driver-v2.19/lib/mongo/semafore.rb', linha 31 def esperar(timeout = nada) @ bloqueio.sincronizar fazer @cv.esperar(@ bloqueio, timeout) end end |