/usr/lib/ruby/vendor_ruby/em-synchrony/em-jack.rb is in ruby-em-synchrony 1.0.5-2ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | begin
require "em-jack"
rescue LoadError => error
raise "Missing EM-Synchrony dependency: gem install em-jack"
end
# WANT: namespaced under EventMachine.. would be nice :-)
# NOTE: no need for "pooling" since Beanstalk supports pipelining
module EMJack
class Connection
alias :ause :use
def use(tube, &blk)
return if @used_tube == tube
f = Fiber.current
# WANT: per command errbacks, would be nice, instead of one global
# errback = Proc.new {|r| f.resume(r) }
on_error {|r| f.resume(r)}
@used_tube = tube
@conn.send(:use, tube)
# WANT: Add conditional on add_deferrable to either accept two procs, or a single block
# .. two procs = callback, errback
add_deferrable { |r| f.resume(r) }
Fiber.yield
end
end
end
|