io-event 1.21.1 → 1.22.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: 634a83d174720978fa28231fa599a3f9ac4b27bc727b4fd934a3999ccd3b0df0
4
- data.tar.gz: 0f34bf53b9103e3dc55f545c479c8850ca0b22425caba6029d3c7dbb93b3b322
3
+ metadata.gz: 9f41abe7e66f2a71d150116a4da4196a07fd247140c64c2850e130cf430da1f3
4
+ data.tar.gz: 1722ecdf3d215d95fb8019686ae6c00790529a14df9513666867719a2841262d
5
5
  SHA512:
6
- metadata.gz: bcce50b95a8f978df63deb0e41bda0e9ea4911ea2ba7a1074628fbce6d6b59d314008ec0ca2cc165a067f020f079bb6940df822732a31f92fab96187cc3bffdd
7
- data.tar.gz: f77dd827a584493fe156cc0f61b07bfa1b3081a514cf591bb156228c6b23b7d54bb1f15c2bb73e9b3a65bd4be6eb13d508a933fdf1a78e2ff314e59b8a79e370
6
+ metadata.gz: a7bd80686939ad0e4df60f7113ea0825de36e82eace8a734f19ea6fc3134b1f9853ba9c797c8d7275839d8ea916f0b6f7d8f7b3587ad1477ce81b1f96d1ff0f0
7
+ data.tar.gz: 2add34ba036026c83dc395bf8b727b999c3a6df5c2f387da71ce26110d8ed1fe34d8c6ad04cb328aa3419c6b3ec64e71349f06a570f0d7d79bc4dd7127d8b407
checksums.yaml.gz.sig CHANGED
Binary file
@@ -97,6 +97,10 @@ class IO
97
97
  # @parameter time [Float] The time at which the block should be called, relative to {#now}.
98
98
  # @parameter block [Proc] The block to call.
99
99
  def schedule(time, block)
100
+ unless time.finite?
101
+ raise ArgumentError, "Timer time must be finite: #{time.inspect}"
102
+ end
103
+
100
104
  handle = Handle.new(time, block)
101
105
 
102
106
  @scheduled << handle
@@ -7,6 +7,6 @@
7
7
  class IO
8
8
  # @namespace
9
9
  module Event
10
- VERSION = "1.21.1"
10
+ VERSION = "1.22.0"
11
11
  end
12
12
  end
data/readme.md CHANGED
@@ -18,6 +18,10 @@ Please see the [project documentation](https://socketry.github.io/io-event/) for
18
18
 
19
19
  Please see the [project releases](https://socketry.github.io/io-event/releases/index) for all releases.
20
20
 
21
+ ### v1.22.0
22
+
23
+ - Reject non-finite timer times (`NaN` and positive or negative infinity), preventing invalid heap ordering and permanently retained timer handles.
24
+
21
25
  ### v1.21.1
22
26
 
23
27
  - Fix the `URing` completion free-list empty check so its sole entry can be reused instead of unnecessarily allocating a new completion.
@@ -56,10 +60,6 @@ Please see the [project releases](https://socketry.github.io/io-event/releases/i
56
60
 
57
61
  - **Fixed**: Avoid entering a blocking native selector wait when an interrupt is already pending for the current thread.
58
62
 
59
- ### v1.17.0
60
-
61
- - Report inherited selector objects as closed after fork, and avoid closing descriptors they no longer own.
62
-
63
63
  ## Contributing
64
64
 
65
65
  We welcome contributions to this project.
data/releases.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Releases
2
2
 
3
+ ## v1.22.0
4
+
5
+ - Reject non-finite timer times (`NaN` and positive or negative infinity), preventing invalid heap ordering and permanently retained timer handles.
6
+
3
7
  ## v1.21.1
4
8
 
5
9
  - Fix the `URing` completion free-list empty check so its sole entry can be reused instead of unnecessarily allocating a new completion.
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: io-event
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.21.1
4
+ version: 1.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
metadata.gz.sig CHANGED
Binary file