class GRPC::Notifier

Notifier is useful high-level synchronization primitive.

Attributes

notified[R]
notified?[R]
payload[R]

Public Class Methods

new() click to toggle source
# File src/ruby/lib/grpc/notifier.rb, line 22
def initialize
  @mutex    = Mutex.new
  @cvar     = ConditionVariable.new
  @notified = false
  @payload  = nil
end

Public Instance Methods

notify(payload) click to toggle source
# File src/ruby/lib/grpc/notifier.rb, line 35
def notify(payload)
  @mutex.synchronize do
    return Error.new('already notified') if notified?
    @payload  = payload
    @notified = true
    @cvar.signal
    return nil
  end
end
wait() click to toggle source
# File src/ruby/lib/grpc/notifier.rb, line 29
def wait
  @mutex.synchronize do
    @cvar.wait(@mutex) until notified?
  end
end