bunny 0.10.8 → 1.0.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -4
- data/ChangeLog.md +1 -152
- data/Gemfile +1 -1
- data/README.md +5 -5
- data/bunny.gemspec +1 -1
- data/lib/bunny.rb +14 -2
- data/lib/bunny/channel.rb +94 -158
- data/lib/bunny/channel_id_allocator.rb +1 -2
- data/lib/bunny/concurrent/condition.rb +1 -2
- data/lib/bunny/concurrent/continuation_queue.rb +1 -1
- data/lib/bunny/consumer.rb +0 -13
- data/lib/bunny/consumer_work_pool.rb +2 -5
- data/lib/bunny/delivery_info.rb +1 -3
- data/lib/bunny/exceptions.rb +1 -4
- data/lib/bunny/heartbeat_sender.rb +1 -1
- data/lib/bunny/reader_loop.rb +3 -23
- data/lib/bunny/session.rb +19 -103
- data/lib/bunny/socket.rb +1 -1
- data/lib/bunny/transport.rb +7 -31
- data/lib/bunny/version.rb +1 -1
- data/spec/higher_level_api/integration/basic_ack_spec.rb +19 -34
- data/spec/higher_level_api/integration/basic_cancel_spec.rb +1 -1
- data/spec/higher_level_api/integration/basic_consume_spec.rb +2 -63
- data/spec/higher_level_api/integration/basic_get_spec.rb +1 -1
- data/spec/higher_level_api/integration/basic_nack_spec.rb +1 -1
- data/spec/higher_level_api/integration/basic_publish_spec.rb +1 -1
- data/spec/higher_level_api/integration/basic_qos_spec.rb +8 -5
- data/spec/higher_level_api/integration/basic_reject_spec.rb +17 -16
- data/spec/higher_level_api/integration/basic_return_spec.rb +1 -1
- data/spec/higher_level_api/integration/channel_close_spec.rb +10 -6
- data/spec/higher_level_api/integration/channel_flow_spec.rb +9 -6
- data/spec/higher_level_api/integration/channel_open_spec.rb +20 -11
- data/spec/higher_level_api/integration/confirm_select_spec.rb +1 -1
- data/spec/higher_level_api/integration/connection_spec.rb +1 -1
- data/spec/higher_level_api/integration/consistent_hash_exchange_spec.rb +1 -1
- data/spec/higher_level_api/integration/consumer_cancellation_notification_spec.rb +1 -46
- data/spec/higher_level_api/integration/dead_lettering_spec.rb +1 -1
- data/spec/higher_level_api/integration/exchange_bind_spec.rb +1 -1
- data/spec/higher_level_api/integration/exchange_declare_spec.rb +1 -1
- data/spec/higher_level_api/integration/exchange_delete_spec.rb +1 -1
- data/spec/higher_level_api/integration/exchange_unbind_spec.rb +1 -1
- data/spec/higher_level_api/integration/merry_go_round_spec.rb +1 -1
- data/spec/higher_level_api/integration/message_properties_access_spec.rb +1 -1
- data/spec/higher_level_api/integration/predeclared_exchanges_spec.rb +1 -1
- data/spec/higher_level_api/integration/publishing_edge_cases_spec.rb +1 -1
- data/spec/higher_level_api/integration/queue_declare_spec.rb +1 -1
- data/spec/higher_level_api/integration/queue_delete_spec.rb +2 -2
- data/spec/higher_level_api/integration/queue_purge_spec.rb +1 -1
- data/spec/higher_level_api/integration/queue_unbind_spec.rb +2 -2
- data/spec/higher_level_api/integration/read_only_consumer_spec.rb +1 -1
- data/spec/higher_level_api/integration/sender_selected_distribution_spec.rb +2 -2
- data/spec/higher_level_api/integration/tls_connection_spec.rb +2 -86
- data/spec/higher_level_api/integration/tx_commit_spec.rb +1 -1
- data/spec/higher_level_api/integration/tx_rollback_spec.rb +1 -1
- data/spec/unit/concurrent/condition_spec.rb +46 -53
- metadata +5 -25
- data/benchmarks/mutex_and_monitor.rb +0 -42
- data/benchmarks/synchronized_sorted_set.rb +0 -53
- data/lib/amq/protocol/extensions.rb +0 -16
- data/lib/bunny/concurrent/atomic_fixnum.rb +0 -74
- data/lib/bunny/concurrent/synchronized_sorted_set.rb +0 -56
- data/lib/bunny/timeout.rb +0 -18
- data/lib/bunny/versioned_delivery_tag.rb +0 -28
- data/spec/higher_level_api/integration/connection_stop_spec.rb +0 -26
- data/spec/higher_level_api/integration/exclusive_queue_spec.rb +0 -28
- data/spec/issues/issue141_spec.rb +0 -44
- data/spec/stress/connection_open_close_spec.rb +0 -40
- data/spec/unit/concurrent/atomic_fixnum_spec.rb +0 -35
- data/spec/unit/concurrent/synchronized_sorted_set_spec.rb +0 -73
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bunny
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0.pre1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Duncan
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2013-
|
15
|
+
date: 2013-07-25 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: amq-protocol
|
@@ -28,8 +28,7 @@ dependencies:
|
|
28
28
|
- - '>='
|
29
29
|
- !ruby/object:Gem::Version
|
30
30
|
version: 1.6.0
|
31
|
-
description: Easy to use, feature complete Ruby client for RabbitMQ 2.0
|
32
|
-
versions.
|
31
|
+
description: Easy to use, feature complete Ruby client for RabbitMQ 2.0.
|
33
32
|
email:
|
34
33
|
- celldee@gmail.com
|
35
34
|
- eric@5stops.com
|
@@ -55,11 +54,9 @@ files:
|
|
55
54
|
- benchmarks/basic_publish/with_4K_messages.rb
|
56
55
|
- benchmarks/basic_publish/with_64K_messages.rb
|
57
56
|
- benchmarks/channel_open.rb
|
58
|
-
- benchmarks/mutex_and_monitor.rb
|
59
57
|
- benchmarks/queue_declare.rb
|
60
58
|
- benchmarks/queue_declare_and_bind.rb
|
61
59
|
- benchmarks/queue_declare_bind_and_delete.rb
|
62
|
-
- benchmarks/synchronized_sorted_set.rb
|
63
60
|
- benchmarks/write_vs_write_nonblock.rb
|
64
61
|
- bin/ci/before_build.sh
|
65
62
|
- bunny.gemspec
|
@@ -93,7 +90,6 @@ files:
|
|
93
90
|
- examples/guides/getting_started/weathr.rb
|
94
91
|
- examples/guides/queues/one_off_consumer.rb
|
95
92
|
- examples/guides/queues/redeliveries.rb
|
96
|
-
- lib/amq/protocol/extensions.rb
|
97
93
|
- lib/bunny.rb
|
98
94
|
- lib/bunny/authentication/credentials_encoder.rb
|
99
95
|
- lib/bunny/authentication/external_mechanism_encoder.rb
|
@@ -101,11 +97,9 @@ files:
|
|
101
97
|
- lib/bunny/channel.rb
|
102
98
|
- lib/bunny/channel_id_allocator.rb
|
103
99
|
- lib/bunny/compatibility.rb
|
104
|
-
- lib/bunny/concurrent/atomic_fixnum.rb
|
105
100
|
- lib/bunny/concurrent/condition.rb
|
106
101
|
- lib/bunny/concurrent/continuation_queue.rb
|
107
102
|
- lib/bunny/concurrent/linked_continuation_queue.rb
|
108
|
-
- lib/bunny/concurrent/synchronized_sorted_set.rb
|
109
103
|
- lib/bunny/consumer.rb
|
110
104
|
- lib/bunny/consumer_tag_generator.rb
|
111
105
|
- lib/bunny/consumer_work_pool.rb
|
@@ -123,10 +117,8 @@ files:
|
|
123
117
|
- lib/bunny/ssl_socket.rb
|
124
118
|
- lib/bunny/system_timer.rb
|
125
119
|
- lib/bunny/test_kit.rb
|
126
|
-
- lib/bunny/timeout.rb
|
127
120
|
- lib/bunny/transport.rb
|
128
121
|
- lib/bunny/version.rb
|
129
|
-
- lib/bunny/versioned_delivery_tag.rb
|
130
122
|
- profiling/basic_publish/with_4K_messages.rb
|
131
123
|
- spec/compatibility/queue_declare_spec.rb
|
132
124
|
- spec/compatibility/queue_declare_with_default_channel_spec.rb
|
@@ -145,7 +137,6 @@ files:
|
|
145
137
|
- spec/higher_level_api/integration/channel_open_spec.rb
|
146
138
|
- spec/higher_level_api/integration/confirm_select_spec.rb
|
147
139
|
- spec/higher_level_api/integration/connection_spec.rb
|
148
|
-
- spec/higher_level_api/integration/connection_stop_spec.rb
|
149
140
|
- spec/higher_level_api/integration/consistent_hash_exchange_spec.rb
|
150
141
|
- spec/higher_level_api/integration/consumer_cancellation_notification_spec.rb
|
151
142
|
- spec/higher_level_api/integration/dead_lettering_spec.rb
|
@@ -153,7 +144,6 @@ files:
|
|
153
144
|
- spec/higher_level_api/integration/exchange_declare_spec.rb
|
154
145
|
- spec/higher_level_api/integration/exchange_delete_spec.rb
|
155
146
|
- spec/higher_level_api/integration/exchange_unbind_spec.rb
|
156
|
-
- spec/higher_level_api/integration/exclusive_queue_spec.rb
|
157
147
|
- spec/higher_level_api/integration/heartbeat_spec.rb
|
158
148
|
- spec/higher_level_api/integration/merry_go_round_spec.rb
|
159
149
|
- spec/higher_level_api/integration/message_properties_access_spec.rb
|
@@ -171,7 +161,6 @@ files:
|
|
171
161
|
- spec/higher_level_api/integration/tx_commit_spec.rb
|
172
162
|
- spec/higher_level_api/integration/tx_rollback_spec.rb
|
173
163
|
- spec/issues/issue100_spec.rb
|
174
|
-
- spec/issues/issue141_spec.rb
|
175
164
|
- spec/issues/issue78_spec.rb
|
176
165
|
- spec/issues/issue83_spec.rb
|
177
166
|
- spec/issues/issue97_attachment.json
|
@@ -183,7 +172,6 @@ files:
|
|
183
172
|
- spec/stress/channel_open_stress_with_single_threaded_connection_spec.rb
|
184
173
|
- spec/stress/concurrent_consumers_stress_spec.rb
|
185
174
|
- spec/stress/concurrent_publishers_stress_spec.rb
|
186
|
-
- spec/stress/connection_open_close_spec.rb
|
187
175
|
- spec/stress/long_running_consumer_spec.rb
|
188
176
|
- spec/tls/cacert.pem
|
189
177
|
- spec/tls/client_cert.pem
|
@@ -191,10 +179,8 @@ files:
|
|
191
179
|
- spec/tls/server_cert.pem
|
192
180
|
- spec/tls/server_key.pem
|
193
181
|
- spec/unit/bunny_spec.rb
|
194
|
-
- spec/unit/concurrent/atomic_fixnum_spec.rb
|
195
182
|
- spec/unit/concurrent/condition_spec.rb
|
196
183
|
- spec/unit/concurrent/linked_continuation_queue_spec.rb
|
197
|
-
- spec/unit/concurrent/synchronized_sorted_set_spec.rb
|
198
184
|
homepage: http://rubybunny.info
|
199
185
|
licenses:
|
200
186
|
- MIT
|
@@ -210,9 +196,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
210
196
|
version: '0'
|
211
197
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
212
198
|
requirements:
|
213
|
-
- - '
|
199
|
+
- - '>'
|
214
200
|
- !ruby/object:Gem::Version
|
215
|
-
version:
|
201
|
+
version: 1.3.1
|
216
202
|
requirements: []
|
217
203
|
rubyforge_project:
|
218
204
|
rubygems_version: 2.0.5
|
@@ -237,7 +223,6 @@ test_files:
|
|
237
223
|
- spec/higher_level_api/integration/channel_open_spec.rb
|
238
224
|
- spec/higher_level_api/integration/confirm_select_spec.rb
|
239
225
|
- spec/higher_level_api/integration/connection_spec.rb
|
240
|
-
- spec/higher_level_api/integration/connection_stop_spec.rb
|
241
226
|
- spec/higher_level_api/integration/consistent_hash_exchange_spec.rb
|
242
227
|
- spec/higher_level_api/integration/consumer_cancellation_notification_spec.rb
|
243
228
|
- spec/higher_level_api/integration/dead_lettering_spec.rb
|
@@ -245,7 +230,6 @@ test_files:
|
|
245
230
|
- spec/higher_level_api/integration/exchange_declare_spec.rb
|
246
231
|
- spec/higher_level_api/integration/exchange_delete_spec.rb
|
247
232
|
- spec/higher_level_api/integration/exchange_unbind_spec.rb
|
248
|
-
- spec/higher_level_api/integration/exclusive_queue_spec.rb
|
249
233
|
- spec/higher_level_api/integration/heartbeat_spec.rb
|
250
234
|
- spec/higher_level_api/integration/merry_go_round_spec.rb
|
251
235
|
- spec/higher_level_api/integration/message_properties_access_spec.rb
|
@@ -263,7 +247,6 @@ test_files:
|
|
263
247
|
- spec/higher_level_api/integration/tx_commit_spec.rb
|
264
248
|
- spec/higher_level_api/integration/tx_rollback_spec.rb
|
265
249
|
- spec/issues/issue100_spec.rb
|
266
|
-
- spec/issues/issue141_spec.rb
|
267
250
|
- spec/issues/issue78_spec.rb
|
268
251
|
- spec/issues/issue83_spec.rb
|
269
252
|
- spec/issues/issue97_attachment.json
|
@@ -275,7 +258,6 @@ test_files:
|
|
275
258
|
- spec/stress/channel_open_stress_with_single_threaded_connection_spec.rb
|
276
259
|
- spec/stress/concurrent_consumers_stress_spec.rb
|
277
260
|
- spec/stress/concurrent_publishers_stress_spec.rb
|
278
|
-
- spec/stress/connection_open_close_spec.rb
|
279
261
|
- spec/stress/long_running_consumer_spec.rb
|
280
262
|
- spec/tls/cacert.pem
|
281
263
|
- spec/tls/client_cert.pem
|
@@ -283,8 +265,6 @@ test_files:
|
|
283
265
|
- spec/tls/server_cert.pem
|
284
266
|
- spec/tls/server_key.pem
|
285
267
|
- spec/unit/bunny_spec.rb
|
286
|
-
- spec/unit/concurrent/atomic_fixnum_spec.rb
|
287
268
|
- spec/unit/concurrent/condition_spec.rb
|
288
269
|
- spec/unit/concurrent/linked_continuation_queue_spec.rb
|
289
|
-
- spec/unit/concurrent/synchronized_sorted_set_spec.rb
|
290
270
|
has_rdoc: true
|
@@ -1,42 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# encoding: utf-8
|
3
|
-
|
4
|
-
require "rubygems"
|
5
|
-
require "set"
|
6
|
-
require "thread"
|
7
|
-
require "benchmark"
|
8
|
-
require "monitor"
|
9
|
-
|
10
|
-
puts
|
11
|
-
puts "-" * 80
|
12
|
-
puts "Benchmarking on #{RUBY_DESCRIPTION}"
|
13
|
-
|
14
|
-
n = 2_000_000
|
15
|
-
mx = Mutex.new
|
16
|
-
mt = Monitor.new
|
17
|
-
|
18
|
-
# warm up the JIT, etc
|
19
|
-
puts "Doing a warmup run..."
|
20
|
-
n.times do |i|
|
21
|
-
mx.synchronize { 1 }
|
22
|
-
mt.synchronize { 1 }
|
23
|
-
end
|
24
|
-
|
25
|
-
t1 = Benchmark.realtime do
|
26
|
-
n.times do |i|
|
27
|
-
mx.synchronize { 1 }
|
28
|
-
end
|
29
|
-
end
|
30
|
-
r1 = (n.to_f/t1.to_f)
|
31
|
-
|
32
|
-
t2 = Benchmark.realtime do
|
33
|
-
n.times do |i|
|
34
|
-
mt.synchronize { 1 }
|
35
|
-
end
|
36
|
-
end
|
37
|
-
r2 = (n.to_f/t2.to_f)
|
38
|
-
|
39
|
-
puts "Mutex#synchronize, rate: #{(r1 / 1000).round(2)} KGHz"
|
40
|
-
puts "Monitor#synchronize, rate: #{(r2 / 1000).round(2)} KGHz"
|
41
|
-
puts
|
42
|
-
puts "-" * 80
|
@@ -1,53 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# encoding: utf-8
|
3
|
-
|
4
|
-
require "rubygems"
|
5
|
-
require "set"
|
6
|
-
require "thread"
|
7
|
-
require "benchmark"
|
8
|
-
|
9
|
-
require "bunny/concurrent/synchronized_sorted_set"
|
10
|
-
|
11
|
-
puts
|
12
|
-
puts "-" * 80
|
13
|
-
puts "Benchmarking on #{RUBY_DESCRIPTION}"
|
14
|
-
|
15
|
-
n = 2_000_000
|
16
|
-
s = SortedSet.new
|
17
|
-
|
18
|
-
# warm up the JIT, etc
|
19
|
-
puts "Doing a warmup run..."
|
20
|
-
n.times do |i|
|
21
|
-
s << 1
|
22
|
-
s << i
|
23
|
-
s.delete i
|
24
|
-
s << i
|
25
|
-
end
|
26
|
-
|
27
|
-
t1 = Benchmark.realtime do
|
28
|
-
n.times do |i|
|
29
|
-
s << 1
|
30
|
-
s << i
|
31
|
-
s.delete i
|
32
|
-
s << i
|
33
|
-
s.length
|
34
|
-
end
|
35
|
-
end
|
36
|
-
r1 = (n.to_f/t1.to_f)
|
37
|
-
|
38
|
-
s2 = SynchronizedSortedSet.new
|
39
|
-
t2 = Benchmark.realtime do
|
40
|
-
n.times do |i|
|
41
|
-
s2 << 1
|
42
|
-
s2 << i
|
43
|
-
s2.delete i
|
44
|
-
s2 << i
|
45
|
-
s2.length
|
46
|
-
end
|
47
|
-
end
|
48
|
-
r2 = (n.to_f/t2.to_f)
|
49
|
-
|
50
|
-
puts "Mixed sorted set ops, rate: #{(r1 / 1000).round(2)} KGHz"
|
51
|
-
puts "Mixed synchronized sorted set ops, rate: #{(r2 / 1000).round(2)} KGHz"
|
52
|
-
puts
|
53
|
-
puts "-" * 80
|
@@ -1,74 +0,0 @@
|
|
1
|
-
require "set"
|
2
|
-
require "thread"
|
3
|
-
require "monitor"
|
4
|
-
|
5
|
-
module Bunny
|
6
|
-
module Concurrent
|
7
|
-
# Minimalistic implementation of a synchronized fixnum value,
|
8
|
-
# designed after (but not implementing the entire API of!)
|
9
|
-
#
|
10
|
-
# @note Designed to be intentionally minimalistic and only cover Bunny's needs.
|
11
|
-
#
|
12
|
-
# @api public
|
13
|
-
class AtomicFixnum
|
14
|
-
def initialize(n = 0)
|
15
|
-
@n = n
|
16
|
-
@mutex = Monitor.new
|
17
|
-
end
|
18
|
-
|
19
|
-
def get
|
20
|
-
@mutex.synchronize do
|
21
|
-
@n
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def set(n)
|
26
|
-
@mutex.synchronize do
|
27
|
-
@n = n
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
def increment
|
32
|
-
@mutex.synchronize do
|
33
|
-
@n = @n + 1
|
34
|
-
end
|
35
|
-
end
|
36
|
-
alias inc increment
|
37
|
-
alias increment_and_get increment
|
38
|
-
|
39
|
-
def get_and_add(i)
|
40
|
-
@mutex.synchronize do
|
41
|
-
v = @n
|
42
|
-
@n = @n + i
|
43
|
-
|
44
|
-
v
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def get_and_increment
|
49
|
-
@mutex.synchronize do
|
50
|
-
v = @n
|
51
|
-
@n = @n + 1
|
52
|
-
|
53
|
-
v
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
def decrement
|
58
|
-
@mutex.synchronize do
|
59
|
-
@n = @n - 1
|
60
|
-
end
|
61
|
-
end
|
62
|
-
alias dec decrement
|
63
|
-
alias decrement_and_get decrement
|
64
|
-
|
65
|
-
def ==(m)
|
66
|
-
@mutex.synchronize { @n == m }
|
67
|
-
end
|
68
|
-
|
69
|
-
def ===(v)
|
70
|
-
@mutex.synchronize { @n === v }
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
@@ -1,56 +0,0 @@
|
|
1
|
-
require "set"
|
2
|
-
require "thread"
|
3
|
-
|
4
|
-
module Bunny
|
5
|
-
module Concurrent
|
6
|
-
# A SortedSet variation that synchronizes key mutation operations.
|
7
|
-
#
|
8
|
-
# @note This is NOT a complete SortedSet replacement. It only synchronizes operations needed by Bunny.
|
9
|
-
# @api public
|
10
|
-
class SynchronizedSortedSet < SortedSet
|
11
|
-
def initialize(enum = nil)
|
12
|
-
@mutex = Mutex.new
|
13
|
-
|
14
|
-
super
|
15
|
-
end
|
16
|
-
|
17
|
-
def add(o)
|
18
|
-
# avoid using Mutex#synchronize because of a Ruby 1.8.7-specific
|
19
|
-
# bug that prevents super from being called from within a block. MK.
|
20
|
-
@mutex.lock
|
21
|
-
begin
|
22
|
-
super
|
23
|
-
ensure
|
24
|
-
@mutex.unlock
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def delete(o)
|
29
|
-
@mutex.lock
|
30
|
-
begin
|
31
|
-
super
|
32
|
-
ensure
|
33
|
-
@mutex.unlock
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def delete_if(&block)
|
38
|
-
@mutex.lock
|
39
|
-
begin
|
40
|
-
super
|
41
|
-
ensure
|
42
|
-
@mutex.unlock
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def include?(o)
|
47
|
-
@mutex.lock
|
48
|
-
begin
|
49
|
-
super
|
50
|
-
ensure
|
51
|
-
@mutex.unlock
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
data/lib/bunny/timeout.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
module Bunny
|
2
|
-
# Unifies Ruby standard library's Timeout (which is not accurate on
|
3
|
-
# Ruby 1.8) and SystemTimer (the gem)
|
4
|
-
Timeout = if RUBY_VERSION < "1.9"
|
5
|
-
begin
|
6
|
-
require "bunny/system_timer"
|
7
|
-
Bunny::SystemTimer
|
8
|
-
rescue LoadError
|
9
|
-
Timeout
|
10
|
-
end
|
11
|
-
else
|
12
|
-
Timeout
|
13
|
-
end
|
14
|
-
|
15
|
-
# Backwards compatibility
|
16
|
-
# @private
|
17
|
-
Timer = Timeout
|
18
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
module Bunny
|
2
|
-
# Wraps a delivery tag (which is an integer) so that {Bunny::Channel} could
|
3
|
-
# detect stale tags after connection recovery.
|
4
|
-
#
|
5
|
-
# @private
|
6
|
-
class VersionedDeliveryTag
|
7
|
-
attr_reader :tag
|
8
|
-
attr_reader :version
|
9
|
-
|
10
|
-
def initialize(tag, version)
|
11
|
-
raise ArgumentError.new("tag cannot be nil") unless tag
|
12
|
-
raise ArgumentError.new("version cannot be nil") unless version
|
13
|
-
|
14
|
-
@tag = tag
|
15
|
-
@version = version
|
16
|
-
end
|
17
|
-
|
18
|
-
def to_i
|
19
|
-
@tag
|
20
|
-
end
|
21
|
-
|
22
|
-
def stale?(version)
|
23
|
-
raise ArgumentError.new("version cannot be nil") unless version
|
24
|
-
|
25
|
-
@version < version
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|