Skip to content

Commit e1303a4

Browse files
Backfill release notes for v1.15.1 and add Unreleased section.
The v1.15.1 release went out without notes; reconstruct them from the changes between v1.15.0 and the tag. The Unreleased section now summarises everything merged on top: the io_uring eventfd-wakeup work and accompanying performance flags, the new `io_close` fiber-scheduler hook integration, and the WorkerPool / TestScheduler GC fixes. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 6c39050 commit e1303a4

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

releases.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# Releases
22

3+
## Unreleased
4+
5+
- Use `eventfd` for `URing` cross-thread wakeup, and enable `IORING_SETUP_SINGLE_ISSUER`, `IORING_SETUP_DEFER_TASKRUN`, and `IORING_SETUP_TASKRUN_FLAG`. The waking thread now signals via `eventfd` rather than submitting a `NOP` SQE, which unlocks the single-issuer optimisation, defers task work to the application thread, and lets `select()` skip the `io_uring_get_events()` syscall when no task work is pending.
6+
- Add support for the `io_close` fiber-scheduler hook (Ruby 4.0+). The `URing` selector performs the close asynchronously via the ring; the `Debug::Selector` and `TestScheduler` wrappers forward to the underlying selector when supported.
7+
- Improve `WorkerPool` GC compaction support and add proper write barriers, fixing potential use-after-free under compacting GC.
8+
- Keep blocked scheduler fibers alive during GC by registering them as roots in `TestScheduler#block`, preventing premature collection and the resulting use-after-free crash on resume.
9+
10+
## v1.15.1
11+
12+
- Simplify closed-IO handling in the `Select` selector: rely on Ruby 4's `rb_thread_io_close_interrupt` to wake fibers waiting on a descriptor that's been closed, removing a custom error-recovery path that could mis-attribute `IOError` / `Errno::EBADF` to the wrong waiter.
13+
314
## v1.15.0
415

516
- Add bounds checks, in the unlikely event of a user providing an invalid offset that exceeds the buffer size. This prevents potential memory corruption and ensures safe operation when using buffered IO methods.

0 commit comments

Comments
 (0)