module Lowdown::Connection::Monitor

Public Class Methods

new(*) click to toggle source

@!group Overrides

Calls superclass method
# File lib/lowdown/connection/monitor.rb, line 30
def initialize(*)
  super
  @lowdown_crash_conditions_mutex = Mutex.new
  @lowdown_crash_conditions = []
end

Public Instance Methods

__crash_handler__(actor, reason) click to toggle source

Send the exception to each of our conditions, to signal that an exception occurred on one of the actors in the pool.

@param [Actor] actor @param [Exception] reason @return [void]

Calls superclass method
# File lib/lowdown/connection/monitor.rb, line 43
def __crash_handler__(actor, reason)
  if reason # is nil if the actor exits normally
    @lowdown_crash_conditions_mutex.synchronize do
      @lowdown_crash_conditions.each do |condition|
        condition.signal(reason)
      end
    end
  end
  super
end
__deregister_lowdown_crash_condition__(condition) click to toggle source

Removes a condition from the list of conditions that get notified when an actor dies because of an unhandled exception.

@param [Condition] condition @return [void]

# File lib/lowdown/connection/monitor.rb, line 73
def __deregister_lowdown_crash_condition__(condition)
  @lowdown_crash_conditions_mutex.synchronize do
    @lowdown_crash_conditions.delete(condition)
  end
end
__register_lowdown_crash_condition__(condition) click to toggle source

Adds a condition to the list of conditions to be notified when an actors dies because of an unhandled exception.

@param [Condition] condition @return [void]

# File lib/lowdown/connection/monitor.rb, line 61
def __register_lowdown_crash_condition__(condition)
  @lowdown_crash_conditions_mutex.synchronize do
    @lowdown_crash_conditions << condition
  end
end