async-io 1.36.0 → 1.38.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: f45b658e692b5426b037f69b266fe095c3ee61320f5db8ccc2469d66bb923c22
4
- data.tar.gz: 89133ec5eb471eef5c72e1e35dec328c3193438ba4f0c18e7978ce1a8d3dc49a
3
+ metadata.gz: 3b7b3f7b1f99d0f76bb82952decb91db243b03701816487be7994fe21a44a367
4
+ data.tar.gz: 3d4fb5452bad6c72e0dfcc05a0e29ab3711007b87b2bca0962cec3d1dc8126b0
5
5
  SHA512:
6
- metadata.gz: 883d047a96a021dcdb347c41b5872fb74dc9e573ba5123dce66facd6cc9729c032d5153e9fc992cf1031f7f9cc5a30d28f176d29b7a1d5218b3b6f9a9a72316f
7
- data.tar.gz: db3dfd29a52b2a22d8296873f0ddd5ae9599b13ec5b51f0c25dce596aa53e46bda425452d7977d5f0f750531e7d10f1cf8dd828626c653604c4149008f14ed9b
6
+ metadata.gz: 53585eab5d5b7713182f47a030beaddbcccc77faf3bdb8f90d5d7d178167dcf63f627580225e813558da9ac61cbe5f9d005d0787666ef566e34deb527fedd79a
7
+ data.tar.gz: cef5bfceb64437f36cdd4c8391705ba9fcb10c754c96eebab8a3dc0eaabf3e819054e229d38d2f72763e36bc2d2791cc635652219e01ec3baf07b3bacaf22d7d
checksums.yaml.gz.sig CHANGED
Binary file
@@ -125,10 +125,21 @@ module Async
125
125
  return matched
126
126
  end
127
127
 
128
- def peek
129
- until yield(@read_buffer) or @eof
128
+ def peek(size = nil)
129
+ if size
130
+ until @eof or @read_buffer.bytesize >= size
131
+ # Compute the amount of data we need to read from the underlying stream:
132
+ read_size = size - @read_buffer.bytesize
133
+
134
+ # Don't read less than @block_size to avoid lots of small reads:
135
+ fill_read_buffer(read_size > @block_size ? read_size : @block_size)
136
+ end
137
+ return @read_buffer.slice(0, [size, @read_buffer.size].min)
138
+ end
139
+ until (block_given? && yield(@read_buffer)) or @eof
130
140
  fill_read_buffer
131
141
  end
142
+ return @read_buffer
132
143
  end
133
144
 
134
145
  def gets(separator = $/, **options)
@@ -35,8 +35,8 @@ module Async
35
35
  Socket.bind(@address, **@options, &block)
36
36
  rescue Errno::EADDRINUSE
37
37
  # If you encounter EADDRINUSE from `bind()`, you can check if the socket is actually accepting connections by attempting to `connect()` to it. If the socket is still bound by an active process, the connection will succeed. Otherwise, it should be safe to `unlink()` the path and try again.
38
- if !bound? && File.exist?(@path)
39
- File.unlink(@path)
38
+ if !bound?
39
+ File.unlink(@path) rescue nil
40
40
  retry
41
41
  else
42
42
  raise
@@ -5,6 +5,6 @@
5
5
 
6
6
  module Async
7
7
  module IO
8
- VERSION = "1.36.0"
8
+ VERSION = "1.38.0"
9
9
  end
10
10
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: async-io
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.36.0
4
+ version: 1.38.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
@@ -46,7 +46,7 @@ cert_chain:
46
46
  Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
47
47
  voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
48
48
  -----END CERTIFICATE-----
49
- date: 2023-09-11 00:00:00.000000000 Z
49
+ date: 2023-11-17 00:00:00.000000000 Z
50
50
  dependencies:
51
51
  - !ruby/object:Gem::Dependency
52
52
  name: async
metadata.gz.sig CHANGED
Binary file