em-jack 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/README.rdoc +1 -0
  2. data/lib/em-jack/connection.rb +22 -1
  3. metadata +3 -3
@@ -78,3 +78,4 @@ contact me by email at dj2 at everburning dot com.
78
78
  Charles Melbye (cmelbye)
79
79
  Peter Kieltyka (pkieltyka)
80
80
  Martyn Loughran (mloughran)
81
+ Mike Perham (mperham)
@@ -43,6 +43,25 @@ module EMJack
43
43
  end
44
44
  end
45
45
 
46
+ def fiber!
47
+ eigen = (class << self
48
+ self
49
+ end)
50
+ eigen.instance_eval do
51
+ %w(use reserve ignore watch peek stats list delete touch bury kick pause release put).each do |meth|
52
+ alias_method :"a#{meth}", meth.to_sym
53
+ define_method(meth.to_sym) do |*args|
54
+ fib = Fiber.current
55
+ ameth = :"a#{meth}"
56
+ p [ameth, *args]
57
+ proc = lambda { |*result| fib.resume(*result) }
58
+ send(ameth, *args, &proc)
59
+ Fiber.yield
60
+ end
61
+ end
62
+ end
63
+ end
64
+
46
65
  def use(tube, &blk)
47
66
  return if @used_tube == tube
48
67
 
@@ -195,7 +214,9 @@ module EMJack
195
214
  r = reserve(timeout)
196
215
  r.callback do |job|
197
216
  blk.call(job)
198
-
217
+ EM.next_tick { work.call }
218
+ end
219
+ r.errback do
199
220
  EM.next_tick { work.call }
200
221
  end
201
222
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 0
9
- version: 0.1.0
8
+ - 1
9
+ version: 0.1.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - dan sinclair
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-03-30 00:00:00 -04:00
17
+ date: 2010-08-13 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency