Classe: Mongo::DistinguishingSemafore Private
- Herda:
-
Objeto
- Objeto
- Mongo::DistinguishingSemafore
- Definido em:
- build/ruby-driver-v2.19/lib/mongo/distinguishing_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.
Este é um semáforo que distingue as esperas que terminam devido ao tempo limite atingido das esperas que terminam devido à sinalização do semáforo.
Recolhimento do Resumo do método de instância
- #transmissão ➤ Objeto privado
-
#initialize ➤ DistinguishingSemafore
construtor
privado
Uma nova instância do DistinguishingSemafore.
- #signal ⇒ Object privado
-
#wait(timeout = nil) ➤ true | false
privado
Aguarda que o semáforo seja sinalizado até o tempo limite segundos.
Detalhes do construtor
#initialize ➤ DistinguishingSemafore
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 de DistinguishingSemafore.
24 25 26 27 28 |
# File 'build/ruby-driver-v2.19/lib/mongo/distinguishing_semafore.rb', linha 24 def inicializar @ bloqueio = Mutex.Novo @cv = ::CondiçãoVariável.Novo @queue = [] 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.
44 45 46 47 48 49 |
# File 'build/ruby-driver-v2.19/lib/mongo/distinguishing_semafore.rb', linha 44 def transmissão @ bloqueio.sincronizar fazer @queue.push(true) @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.
51 52 53 54 55 56 |
# File 'build/ruby-driver-v2.19/lib/mongo/distinguishing_semafore.rb', linha 51 def sinal @ bloqueio.sincronizar fazer @queue.push(true) @cv.sinal end end |
#wait(timeout = nil) ➤ true | false
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.
35 36 37 38 39 40 41 42 |
# File 'build/ruby-driver-v2.19/lib/mongo/distinguishing_semafore.rb', linha 35 def esperar(timeout = nada) @ bloqueio.sincronizar fazer @cv.esperar(@ bloqueio, timeout) (!@queue.vazio?).toque fazer @queue.Limpar end end end |