lib/bunny/cruby/ssl_socket.rb in bunny-2.6.2 vs lib/bunny/cruby/ssl_socket.rb in bunny-2.6.3

- old
+ new

@@ -6,11 +6,24 @@ # TLS-enabled TCP socket that implements convenience # methods found in Bunny::Socket. class SSLSocket < OpenSSL::SSL::SSLSocket - READ_RETRY_EXCEPTION_CLASSES = [Errno::EAGAIN, Errno::EWOULDBLOCK, IO::WaitReadable] - WRITE_RETRY_EXCEPTION_CLASSES = [Errno::EAGAIN, Errno::EWOULDBLOCK, IO::WaitWritable] + READ_RETRY_EXCEPTION_CLASSES = if defined?(IO::EAGAINWaitReadable) + # Ruby 2.1+ + [Errno::EAGAIN, Errno::EWOULDBLOCK, IO::WaitReadable, + IO::EAGAINWaitReadable, IO::EWOULDBLOCKWaitReadable] + else + # 2.0 + [Errno::EAGAIN, Errno::EWOULDBLOCK, IO::WaitReadable] + end + WRITE_RETRY_EXCEPTION_CLASSES = if defined?(IO::EAGAINWaitWritable) + [Errno::EAGAIN, Errno::EWOULDBLOCK, IO::WaitWritable, + IO::EAGAINWaitWritable, IO::EWOULDBLOCKWaitWritable] + else + # 2.0 + [Errno::EAGAIN, Errno::EWOULDBLOCK, IO::WaitWritable] + end # Reads given number of bytes with an optional timeout # # @param [Integer] count How many bytes to read # @param [Integer] timeout Timeout