Module: Combi
- Defined in:
- lib/combi/helpers.rb,
lib/combi/reactor.rb,
lib/combi/service.rb,
lib/combi/version.rb,
lib/combi/buses/bus.rb,
lib/combi/buses/http.rb,
lib/combi/buses/queue.rb,
lib/combi/service_bus.rb,
lib/combi/queue_service.rb,
lib/combi/response_store.rb,
lib/combi/buses/in_process.rb,
lib/combi/buses/web_socket.rb,
lib/combi/buses/correlation.rb
Defined Under Namespace
Modules: Service Classes: Bus, Correlation, EventedWaiter, Http, InProcess, Queue, QueueService, Reactor, ResponseStore, ServiceBus, ServiceError, WebSocket
Constant Summary collapse
- VERSION =
'0.0.11'
Class Method Summary collapse
Class Method Details
.wait_for(defer, options = {}, &block) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/combi/helpers.rb', line 8 def self.wait_for(defer, = {}, &block) [:timeout] ||= 2 waiter_thread = Thread.current success_response, error_response = nil defer.callback { |response| success_response = response waiter_thread.wakeup } defer.errback { |response| STDERR << "waiting for result, received an error: #{response.inspect}\n" error_response = response waiter_thread.wakeup } Timeout::timeout([:timeout]) do Thread.stop puts "\t AFTER STOP" raise ServiceError.new(error_response) if error_response block.call success_response end end |