class Celluloid::Group

Attributes

group[RW]

Public Class Methods

new() click to toggle source
# File lib/celluloid/group.rb, line 5
def initialize
  @pid = $PROCESS_ID
  @mutex = Mutex.new
  @group = []
  @running = true
end

Public Instance Methods

active?() click to toggle source
# File lib/celluloid/group.rb, line 55
def active?
  @running
end
assert_active() click to toggle source
# File lib/celluloid/group.rb, line 12
def assert_active
  raise Celluloid::NotActive unless active?
end
assert_inactive() click to toggle source
# File lib/celluloid/group.rb, line 16
def assert_inactive
  return unless active?
  if RUBY_PLATFORM == "java"
    Celluloid.logger.warn "Group is still active"
  else
    raise Celluloid::StillActive
  end
end
create() click to toggle source
# File lib/celluloid/group.rb, line 63
def create
  raise NotImplementedError
end
each() { |thread| ... } click to toggle source
# File lib/celluloid/group.rb, line 25
def each
  to_a.each { |thread| yield thread }
end
each_actor(&block) click to toggle source
# File lib/celluloid/group.rb, line 51
def each_actor(&block)
  to_a.lazy.select { |t| t[:celluloid_role] == :actor }.each(&block)
end
forked?() click to toggle source
# File lib/celluloid/group.rb, line 29
def forked?
  @pid != $PROCESS_ID
end
get() click to toggle source
# File lib/celluloid/group.rb, line 59
def get
  raise NotImplementedError
end
purge(thread) click to toggle source
# File lib/celluloid/group.rb, line 40
def purge(thread)
  @mutex.synchronize do
    @group.delete(thread)
    begin
      thread.kill
    rescue
      nil
    end
  end
end
shutdown() click to toggle source
# File lib/celluloid/group.rb, line 67
def shutdown
  raise NotImplementedError
end
to_a() click to toggle source
# File lib/celluloid/group.rb, line 33
def to_a
  return [] if forked?
  res = nil
  @mutex.synchronize { res = @group.dup }
  res
end