class Celluloid::Signals - celluloid-0.15.2 Documentation

# class Celluloid::Signals

Event signaling between methods of the same object

### Public Class Methods

new() click to toggle source

    # File lib/celluloid/signals.rb, line 4
    def initialize
      @conditions = {}
    end

### Public Instance Methods

broadcast(name, value = nil) click to toggle source

Send a signal to all method calls waiting for the given name

    # File lib/celluloid/signals.rb, line 17
    def broadcast(name, value = nil)
      if condition = @conditions.delete(name)
        condition.broadcast(value)
      end
    end

wait(name) click to toggle source

Wait for the given signal and return the associated value

    # File lib/celluloid/signals.rb, line 9
    def wait(name)
      raise "cannot wait for signals while exclusive" if Celluloid.exclusive?

      @conditions[name] ||= Condition.new
      @conditions[name].wait
    end