em-jack 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -11,6 +11,6 @@ end
11
11
 
12
12
  module EMJack
13
13
  module VERSION
14
- STRING = '0.1.2'
14
+ STRING = '0.1.3'
15
15
  end
16
16
  end
@@ -233,6 +233,7 @@ module EMJack
233
233
  end
234
234
 
235
235
  def connected
236
+ @reconnect_proc = nil
236
237
  @retries = 0
237
238
  succeed
238
239
  end
@@ -240,7 +241,8 @@ module EMJack
240
241
  def disconnected
241
242
  d = @deferrables.dup
242
243
 
243
- prev_used, prev_watched = reset_tube_state
244
+ ## if reconnecting, need to fail ourself to remove any callbacks
245
+ fail
244
246
 
245
247
  set_deferred_status(nil)
246
248
  d.each { |df| df.fail(:disconnected) }
@@ -253,8 +255,11 @@ module EMJack
253
255
  end
254
256
  end
255
257
 
258
+ prev_used, prev_watched = reset_tube_state
259
+ @reconnect_proc = Proc.new { reconnect(prev_used, prev_watched) } unless @reconnect_proc
260
+
256
261
  @retries += 1
257
- EM.add_timer(5) { reconnect(prev_used, prev_watched) }
262
+ EM.add_timer(5) { @reconnect_proc.call }
258
263
  end
259
264
 
260
265
  def reconnect(prev_used, prev_watched)
@@ -302,7 +307,6 @@ module EMJack
302
307
  break if idx.nil?
303
308
 
304
309
  first = @data[0..(idx + 1)]
305
-
306
310
  df = @deferrables.shift
307
311
  handled, skip = false, false
308
312
  EMJack::Connection.handlers.each do |h|
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: em-jack
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 29
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 2
10
- version: 0.1.2
9
+ - 3
10
+ version: 0.1.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - dan sinclair