Sha256: c4ded5168aadf9500e61405c81731c4466f053f0c6cb10b7385dc2213535910e
Contents?: true
Size: 774 Bytes
Versions: 15
Compression:
Stored size: 774 Bytes
Contents
module Celluloid # A proxy which creates future calls to an actor class FutureProxy < AbstractProxy attr_reader :mailbox # Used for reflecting on proxy objects themselves def __class__; FutureProxy; end def initialize(mailbox, klass) @mailbox, @klass = mailbox, klass end def inspect "#<Celluloid::FutureProxy(#{@klass})>" end def method_missing(meth, *args, &block) unless @mailbox.alive? raise DeadActorError, "attempted to call a dead actor" end if block_given? # FIXME: nicer exception raise "Cannot use blocks with futures yet" end future = Future.new call = SyncCall.new(future, meth, args, block) @mailbox << call future end end end
Version data entries
15 entries across 13 versions & 5 rubygems