Classe: Mongo::Semafore Private

Herda:
Objeto
  • Objeto
mostrar tudo
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

Detalhes do construtor

#inicializarSemá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ãoObjeto

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

#signalObject

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