module Celluloid::ClassMethods
Class methods added to classes which include Celluloid
Public Instance Methods
===(other)
click to toggle source
# File lib/celluloid.rb, line 245 def ===(other) other.is_a? self end
actor_options()
click to toggle source
Configuration options for Actor#new
# File lib/celluloid.rb, line 225 def actor_options { actor_system: actor_system, mailbox_class: mailbox_class, mailbox_size: mailbox_size, task_class: task_class, exclusive: exclusive_actor } end
actor_system()
click to toggle source
# File lib/celluloid.rb, line 220 def actor_system Celluloid.actor_system end
behavior_options()
click to toggle source
# File lib/celluloid.rb, line 235 def behavior_options { proxy_class: proxy_class, exclusive_methods: exclusive_methods, exit_handler_name: exit_handler_name, finalizer: finalizer, receiver_block_executions: execute_block_on_receiver } end
new(*args, &block)
click to toggle source
# File lib/celluloid.rb, line 197 def new(*args, &block) proxy = Cell.new(allocate, behavior_options, actor_options).proxy proxy._send_(:initialize, *args, &block) proxy end
Also aliased as: spawn
new_link(*args, &block)
click to toggle source
Create a new actor and link to the current one
# File lib/celluloid.rb, line 205 def new_link(*args, &block) raise NotActorError, "can't link outside actor context" unless Celluloid.actor? proxy = Cell.new(allocate, behavior_options, actor_options).proxy Actor.link(proxy) proxy._send_(:initialize, *args, &block) proxy end
Also aliased as: spawn_link
pool(config = {}, &block)
click to toggle source
Create a new pool of workers. Accepts the following options:
-
size: how many workers to create. Default is worker per CPU core
-
args: array of arguments to pass when creating a worker
# File lib/celluloid/supervision/container/behavior/pool.rb, line 12 def pool(config = {}, &block) _ = Celluloid.supervise(pooling_options(config, block: block, actors: self)) _.actors.last end
pool_link(klass, config = {}, &block)
click to toggle source
Same as pool, but links to the pool manager
# File lib/celluloid/supervision/container/behavior/pool.rb, line 18 def pool_link(klass, config = {}, &block) Supervision::Container::Pool.new_link(pooling_options(config, block: block, actors: klass)) end
run(*args, &block)
click to toggle source
Run an actor in the foreground
# File lib/celluloid.rb, line 216 def run(*args, &block) Actor.join(new(*args, &block)) end
supervise(config = {}, &block)
click to toggle source
# File lib/celluloid/supervision/supervise.rb, line 10 def supervise(config = {}, &block) Celluloid.supervise(config.merge(type: self), &block) end