io-endpoint 0.7.0 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3f76dc33db329c9e393c817dbc679a3d06c1f523eda8740edd25447ed39f5a1b
4
- data.tar.gz: 3917511b6a08184cad66e734120d8ea039b15645b9f0c1b256a5149372628e56
3
+ metadata.gz: 91e540b7ee9ece1ff33ae69f5a13e9dbe44c1df4ac52b144df3ec197d94b7bd4
4
+ data.tar.gz: 8f361d92b3ccf94ba25a38bc28b821d416a9edf785245d2a8dda299d5aa498e0
5
5
  SHA512:
6
- metadata.gz: 9b685cf7785946c7a856eaf7859ce6c8427c0ad1df532b188c1049432b474afd289fe7e31eff9ee6c4c608d42022b84e48d4b963de563b83482a6daa572520e8
7
- data.tar.gz: f2a96e35cce3eea736e3ac25eabd3674d595753cdfa3caa652f28da4e9793d7d7d51d3518731018ac19716c779092eaea90d51813504cadca6193a64709fe4e1
6
+ metadata.gz: 360fda4a0e74ef82f96312ab1b06ed6bfe34e77da5b52502a065ded56952597ace1d70f2e7e943bfe5c47d73263ba4add67ac159e226ab957042fbe3710b82ee
7
+ data.tar.gz: '08df3c2f0882872e505a90241e2b424ad53732dec26048b2d96074f69acb8f92ac7162ca15dec5f844d6b318192c2085b30c268f57b823806d936eb2eaa42574'
checksums.yaml.gz.sig CHANGED
Binary file
@@ -5,6 +5,6 @@
5
5
 
6
6
  class IO
7
7
  module Endpoint
8
- VERSION = "0.7.0"
8
+ VERSION = "0.7.1"
9
9
  end
10
10
  end
data/lib/io/readable.rb CHANGED
@@ -1,12 +1,8 @@
1
1
  class IO
2
2
  unless method_defined?(:readable?)
3
3
  def readable?
4
- if self.wait_readable(0).nil?
5
- # timeout means it is not eof
6
- return true
7
- else
8
- !self.eof?
9
- end
4
+ # Do not call `eof?` here as it is not concurrency-safe and it can block.
5
+ !closed?
10
6
  end
11
7
  end
12
8
  end
@@ -16,19 +12,15 @@ require 'socket'
16
12
  class BasicSocket
17
13
  unless method_defined?(:readable?)
18
14
  def readable?
19
- # Is it likely that the socket is still connected?
20
- # May return false positive, but won't return false negative.
21
- return false unless super
22
-
23
15
  # If we can wait for the socket to become readable, we know that the socket may still be open.
24
- result = to_io.recv_nonblock(1, MSG_PEEK, exception: false)
16
+ result = self.recv_nonblock(1, MSG_PEEK, exception: false)
25
17
 
26
18
  # No data was available - newer Ruby can return nil instead of empty string:
27
19
  return false if result.nil?
28
20
 
29
21
  # Either there was some data available, or we can wait to see if there is data avaialble.
30
22
  return !result.empty? || result == :wait_readable
31
- rescue Errno::ECONNRESET
23
+ rescue Errno::ECONNRESET, IOError
32
24
  # This might be thrown by recv_nonblock.
33
25
  return false
34
26
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: io-endpoint
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
@@ -37,7 +37,7 @@ cert_chain:
37
37
  Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
38
38
  voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
39
39
  -----END CERTIFICATE-----
40
- date: 2024-04-20 00:00:00.000000000 Z
40
+ date: 2024-04-21 00:00:00.000000000 Z
41
41
  dependencies: []
42
42
  description:
43
43
  email:
metadata.gz.sig CHANGED
Binary file