Classe: Mongo::Semafore Private

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

[Ver fonte]

24
25
26
27
# Arquivo '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.

[Ver fonte]

37
38
39
40
41
# Arquivo '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.

[Ver fonte]

43
44
45
46
47
# Arquivo '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.

[Ver fonte]

31
32
33
34
35
# Arquivo 'lib/mongo/semafore.rb', linha 31

def esperar(timeout = nada)
  @ bloqueio.sincronizar fazer
    @cv.esperar(@ bloqueio, timeout)
  end
end