class Celluloid::Proxy::Block
Attributes
block[R]
call[R]
execution[W]
Public Class Methods
new(mailbox, call, block)
click to toggle source
# File lib/celluloid/proxy/block.rb, line 5 def initialize(mailbox, call, block) @mailbox = mailbox @call = call @block = block @execution = :sender end
Public Instance Methods
to_proc()
click to toggle source
# File lib/celluloid/proxy/block.rb, line 12 def to_proc if @execution == :sender lambda do |*values| if task = Thread.current[:celluloid_task] @mailbox << ::Celluloid::Call::Block.new(self, ::Celluloid::Actor.current.mailbox, values) # TODO: if respond fails, the Task will never be resumed task.suspend(:invokeblock) else # FIXME: better exception fail "No task to suspend" end end else @block end end