Sha256: 5f657fc664ba0ab3dcebd4be1f5e79b037888c5a5f866d6191558367f6314485
Contents?: true
Size: 787 Bytes
Versions: 21
Compression:
Stored size: 787 Bytes
Contents
module Celluloid # Responses to calls class Response attr_reader :call, :value def initialize(call, value) @call, @value = call, value end def dispatch @call.task.resume self end end # Call completed successfully class SuccessResponse < Response; end # Call was aborted due to sender error class ErrorResponse < Response def value ex = super ex = ex.cause if ex.is_a? AbortError if ex.backtrace ex.backtrace << "(celluloid):0:in `remote procedure call'" ex.backtrace.concat(caller) end raise ex end end class BlockResponse def initialize(call, result) @call = call @result = result end def dispatch @call.task.resume(@result) end end end
Version data entries
21 entries across 19 versions & 6 rubygems
Version | Path |
---|---|
celluloid-0.14.0.pre | lib/celluloid/responses.rb |