bunny 1.6.1 → 1.6.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog.md +12 -0
- data/lib/bunny/transport.rb +43 -20
- data/lib/bunny/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 09f980320596ae3eead897e92cb66d74c632a257
|
4
|
+
data.tar.gz: 6b3b92232fdced1f96c90d452136b3f46e1f6a42
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 45314827e8cb6c002b78699925f78c07e68222ad3c7d7ff3bec9ccad9160285fd9a0bbbbac820acf8b54f11ce52671578b1c8f554db27233341784c65f399100
|
7
|
+
data.tar.gz: 303c9cee35b6ca65a1e15ce15cbaded1b82564b9749dba146da44f02f1bed7e7bc0564754ac6e00d619e7c06307d45d85a9908ccefce34d23272a1ab3aed99bb
|
data/ChangeLog.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
## Changes between Bunny 1.6.1 and 1.6.2
|
2
|
+
|
3
|
+
### JRuby Writes Fixes
|
4
|
+
|
5
|
+
On JRuby, Bunny reverts back to using plain old `write(2)` for writes. The CRuby implementation
|
6
|
+
on JRuby suffers from I/O incompatibilities. Until JRuby
|
7
|
+
|
8
|
+
Bunny users who run on JRuby are highly recommended to switch to [March Hare](http://rubymarchhare.info),
|
9
|
+
which has nearly identical API and is significantly more efficient.
|
10
|
+
|
11
|
+
|
12
|
+
|
1
13
|
## Changes between Bunny 1.6.0 and 1.6.1
|
2
14
|
|
3
15
|
### Bunny::Session#with_channel Synchornisation Improvements
|
data/lib/bunny/transport.rb
CHANGED
@@ -101,28 +101,51 @@ module Bunny
|
|
101
101
|
block.call(@tls_context) if @tls_context
|
102
102
|
end
|
103
103
|
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
104
|
+
if defined?(JRUBY_VERSION)
|
105
|
+
# Writes data to the socket.
|
106
|
+
def write(data)
|
107
|
+
return write_without_timeout(data) unless @write_timeout
|
108
|
+
|
109
|
+
begin
|
110
|
+
if open?
|
111
|
+
@writes_mutex.synchronize do
|
112
|
+
@socket.write(data)
|
113
|
+
end
|
114
|
+
end
|
115
|
+
rescue SystemCallError, Timeout::Error, Bunny::ConnectionError, IOError => e
|
116
|
+
@logger.error "Got an exception when sending data: #{e.message} (#{e.class.name})"
|
117
|
+
close
|
118
|
+
@status = :not_connected
|
119
|
+
|
120
|
+
if @session.automatically_recover?
|
121
|
+
@session.handle_network_failure(e)
|
122
|
+
else
|
123
|
+
@session_thread.raise(Bunny::NetworkFailure.new("detected a network failure: #{e.message}", e))
|
115
124
|
end
|
116
125
|
end
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
+
end
|
127
|
+
else
|
128
|
+
# Writes data to the socket. If read/write timeout was specified the operation will return after that
|
129
|
+
# amount of time has elapsed waiting for the socket.
|
130
|
+
def write(data)
|
131
|
+
return write_without_timeout(data) unless @write_timeout
|
132
|
+
|
133
|
+
begin
|
134
|
+
if open?
|
135
|
+
@writes_mutex.synchronize do
|
136
|
+
@socket.write_nonblock_fully(data, @write_timeout)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
rescue SystemCallError, Timeout::Error, Bunny::ConnectionError, IOError => e
|
140
|
+
@logger.error "Got an exception when sending data: #{e.message} (#{e.class.name})"
|
141
|
+
close
|
142
|
+
@status = :not_connected
|
143
|
+
|
144
|
+
if @session.automatically_recover?
|
145
|
+
@session.handle_network_failure(e)
|
146
|
+
else
|
147
|
+
@session_thread.raise(Bunny::NetworkFailure.new("detected a network failure: #{e.message}", e))
|
148
|
+
end
|
126
149
|
end
|
127
150
|
end
|
128
151
|
end
|
data/lib/bunny/version.rb
CHANGED
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: 1.6.
|
4
|
+
version: 1.6.2
|
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: 2014-11-
|
15
|
+
date: 2014-11-07 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: amq-protocol
|