async-io 1.32.0 → 1.33.0

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: 28c67d83e13a3537bb14d747c72bc256835037bd124c7f3d1a7d3d1bea352a21
4
- data.tar.gz: 0bf69a853dd14ecb1523d2b2b2b228efcb04570483d005c02f9c10c6cf0b66db
3
+ metadata.gz: 75eb7a11c19605c547fda13e17e50f1c18411a3666c05a40c3393de6dd0ec350
4
+ data.tar.gz: 89e7ae1d13ecee8609ccffcfc819a209175e306ff647f709ad04879c5aa7e0d3
5
5
  SHA512:
6
- metadata.gz: ccbfdff02524ba1aacb471e178cbfbde88eedb0ea933a7a22b4dcac1af7294eb5b3c92107bb7f7202a5023f9d679253e58b3576eba862cdb9dded189f32c3624
7
- data.tar.gz: e19b54ae9277073a71b1097bb8e7d287045a91dd9a1bcf0a27a399c3138f18f0511126e0d555d95c5486d16a42e03978b07baf7c3d8c8d96a034377f27bb456f
6
+ metadata.gz: 31b20b70904328a61be7fd88ee6ed02517cfa2a1a04ef99432ba8f54e1527320892a3302cad90565246e8e409a52ae2fc27a6036001afc23e5696d13dcc6af9f
7
+ data.tar.gz: 3520d2320d1fbd1fa584018e85a6d388663d2b27c2e68dd7821e1f6a2a089e349f88c128825c5fd9901a702e97ea3d262c9ffd2a8ed5a5102c6610899c7089c2
@@ -116,7 +116,7 @@ module Async
116
116
  end
117
117
 
118
118
  if length
119
- return "" if length <= 0
119
+ return String.new(encoding: Encoding::BINARY) if length <= 0
120
120
 
121
121
  # Fast path:
122
122
  if buffer = self.sysread(length, buffer)
@@ -29,7 +29,13 @@ module Async
29
29
  # Create a new `SharedEndpoint` by binding to the given endpoint.
30
30
  def self.bound(endpoint, backlog: Socket::SOMAXCONN, close_on_exec: false)
31
31
  wrappers = endpoint.bound do |server|
32
- server.listen(backlog)
32
+ # This is somewhat optional. We want to have a generic interface as much as possible so that users of this interface can just call it without knowing a lot of internal details. Therefore, we ignore errors here if it's because the underlying socket does not support the operation.
33
+ begin
34
+ server.listen(backlog)
35
+ rescue Errno::EOPNOTSUPP
36
+ # Ignore.
37
+ end
38
+
33
39
  server.close_on_exec = close_on_exec
34
40
  server.reactor = nil
35
41
  end
@@ -72,7 +72,7 @@ module Async
72
72
 
73
73
  # Reads `size` bytes from the stream. If size is not specified, read until end of file.
74
74
  def read(size = nil)
75
- return '' if size == 0
75
+ return String.new(encoding: Encoding::BINARY) if size == 0
76
76
 
77
77
  if size
78
78
  until @eof or @read_buffer.bytesize >= size
@@ -93,7 +93,7 @@ module Async
93
93
 
94
94
  # Read at most `size` bytes from the stream. Will avoid reading from the underlying stream if possible.
95
95
  def read_partial(size = nil)
96
- return '' if size == 0
96
+ return String.new(encoding: Encoding::BINARY) if size == 0
97
97
 
98
98
  if !@eof and @read_buffer.empty?
99
99
  fill_read_buffer
@@ -22,6 +22,6 @@
22
22
 
23
23
  module Async
24
24
  module IO
25
- VERSION = "1.32.0"
25
+ VERSION = "1.33.0"
26
26
  end
27
27
  end
data/lib/async/io.rb CHANGED
@@ -34,5 +34,9 @@ module Async
34
34
  def self.file_descriptor_limit
35
35
  Process.getrlimit(Process::RLIMIT_NOFILE).first
36
36
  end
37
+
38
+ def self.buffer?
39
+ ::IO.const_defined?(:Buffer)
40
+ end
37
41
  end
38
42
  end
metadata CHANGED
@@ -1,29 +1,37 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: async-io
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.32.0
4
+ version: 1.33.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
+ - Aurora
9
+ - Olle Jonsson
10
+ - Bruno Sutic
11
+ - Benoit Daloze
12
+ - Cyril Roelandt
13
+ - Thibaut Girka
14
+ - Jiang Jinyang
15
+ - Janko Marohnić
8
16
  autorequire:
9
17
  bindir: bin
10
18
  cert_chain: []
11
- date: 2021-05-28 00:00:00.000000000 Z
19
+ date: 2022-03-07 00:00:00.000000000 Z
12
20
  dependencies:
13
21
  - !ruby/object:Gem::Dependency
14
22
  name: async
15
23
  requirement: !ruby/object:Gem::Requirement
16
24
  requirements:
17
- - - "~>"
25
+ - - ">="
18
26
  - !ruby/object:Gem::Version
19
- version: '1.14'
27
+ version: '0'
20
28
  type: :runtime
21
29
  prerelease: false
22
30
  version_requirements: !ruby/object:Gem::Requirement
23
31
  requirements:
24
- - - "~>"
32
+ - - ">="
25
33
  - !ruby/object:Gem::Version
26
- version: '1.14'
34
+ version: '0'
27
35
  - !ruby/object:Gem::Dependency
28
36
  name: async-container
29
37
  requirement: !ruby/object:Gem::Requirement
@@ -67,35 +75,7 @@ dependencies:
67
75
  - !ruby/object:Gem::Version
68
76
  version: '0'
69
77
  - !ruby/object:Gem::Dependency
70
- name: bake-bundler
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: bake-modernize
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: bundler
78
+ name: covered
99
79
  requirement: !ruby/object:Gem::Requirement
100
80
  requirements:
101
81
  - - ">="
@@ -109,7 +89,7 @@ dependencies:
109
89
  - !ruby/object:Gem::Version
110
90
  version: '0'
111
91
  - !ruby/object:Gem::Dependency
112
- name: covered
92
+ name: rack-test
113
93
  requirement: !ruby/object:Gem::Requirement
114
94
  requirements:
115
95
  - - ">="
@@ -128,14 +108,14 @@ dependencies:
128
108
  requirements:
129
109
  - - "~>"
130
110
  - !ruby/object:Gem::Version
131
- version: '3.0'
111
+ version: '3.6'
132
112
  type: :development
133
113
  prerelease: false
134
114
  version_requirements: !ruby/object:Gem::Requirement
135
115
  requirements:
136
116
  - - "~>"
137
117
  - !ruby/object:Gem::Version
138
- version: '3.0'
118
+ version: '3.6'
139
119
  description:
140
120
  email:
141
121
  executables: []
@@ -189,7 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
189
169
  - !ruby/object:Gem::Version
190
170
  version: '0'
191
171
  requirements: []
192
- rubygems_version: 3.1.2
172
+ rubygems_version: 3.2.32
193
173
  signing_key:
194
174
  specification_version: 4
195
175
  summary: Provides support for asynchonous TCP, UDP, UNIX and SSL sockets.