Class: EventMachine::SpawnedProcess
- Inherits:
-
Object
- Object
- EventMachine::SpawnedProcess
- Defined in:
- lib/em/spawnable.rb
Overview
Support for Erlang-style processes.
Instance Method Summary collapse
-
#notify(*x) ⇒ Object
(also: #resume, #run)
Send a message to the spawned process.
- #set_receiver(blk) ⇒ Object
Instance Method Details
#notify(*x) ⇒ Object Also known as: resume, run
Send a message to the spawned process
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/em/spawnable.rb', line 31 def notify *x me = self EM.next_tick { # A notification executes in the context of this # SpawnedProcess object. That makes self and notify # work as one would expect. # y = me.call(*x) if y and y.respond_to?(:pull_out_yield_block) a,b = y.pull_out_yield_block set_receiver a self.notify if b end } end |
#set_receiver(blk) ⇒ Object
49 50 51 52 53 54 |
# File 'lib/em/spawnable.rb', line 49 def set_receiver blk (class << self ; self ; end).class_eval do remove_method :call if method_defined? :call define_method :call, blk end end |