async-io 1.32.0 → 1.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.