BSD Ports

devel/ruby-io-event 1.22.0 NetBSD

Provides low level cross-platform primitives

System
NetBSD
Repository
pkgsrc
Maintainer
[email protected]
Last update
Commit
8a5b610642
License
mit
Categories
devel, ruby
Package size
134.5 KiB, 470.4 KiB installed

Description

IO::Event

Provides low level cross-platform primitives for constructing event loops, with support for select, kqueue, epoll and io_uring.

Motivation

The initial proof-of-concept Async was built on NIO4r. It was perfectly acceptable and well tested in production, however being built on libev was a little bit limiting. I wanted to directly built my fiber scheduler into the fabric of the event loop, which is what this gem exposes - it is specifically implemented to support building event loops beneath the fiber scheduler interface, providing an efficient C implementation of all the core operations.

Install

Binary package:

pkgin install ruby33-io-event

From pkgsrc:

cd /usr/pkgsrc/devel/ruby-io-event && make install clean

Packages

The version each package repository carries. “-” means the repository builds no package of it, “n/a” that there is no such repository.

RepositoryVersion
NetBSD 10.1 x86_641.22.0
NetBSD 10.1 aarch641.16.1
SmartOS / illumos x86_641.22.1
macOS 15 arm641.22.1

Dependencies

Run dependencies 1
Required by 1

Configuration

No options to configure.

Service scripts
none
Flavors
ruby34-io-event-1.22.0, ruby40-io-event-1.22.0

Commit history 8

DateCommitCreditsLog message
8a5b610642 taca devel/ruby-io-event: update to 1.22.1
1.22.1 (2026-09-23) * Fix an infinite loop in the ready queue flush when a queued fiber is resumed out of band, e.g. by a stale unblock racing a timeout, while another fiber re-queues itself on every iteration. * Preserve each ready queue flush's boundary with its own placeholder so newly queued fibers are deferred even when earlier entries are removed. Nested native flushes skip other placeholders, processing work queued before their own boundary. Native selectors ignore placeholders when checking readiness and remove them if a fiber raises.
195db4c165 taca devel/ruby-io-event: update to 1.22.0
1.22.0 (2026-09-10) * Reject non-finite timer times (NaN and positive or negative infinity), preventing invalid heap ordering and permanently retained timer handles.
65de95c818 taca devel/ruby-io-event: update to 1.21.1
1.20.0 (2026-08-26) Add compatibility with Ruby 4.1's fiber scheduler interface version 4. Buffered IO operations now use (offset, length), perform a single transfer of at most length bytes, return short transfers directly, and report -EAGAIN without waiting. Earlier Ruby versions retain the existing minimum-progress behavior. 1.20.1 (2026-08-26) * Fix io_uring scheduler v4 compilation. (#214) 1.21.0 (2026-08-26) * Handle interrupted io_uring process waits. (#215) 1.21.1 (2026-08-27) * Fix the URing completion free-list empty check so its sole entry can be reused instead of unnecessarily allocating a new completion. * Keep cancelled URing completion records allocated until both the operation and cancellation completions have been processed.
e997778e8a taca devel/ruby-io-event: update to 1.19.5
1.19.5 (2026-08-14) * Preserve the original exception or non-local control flow when IO::Event::WorkerPool cancellation interrupts a blocked fiber, while still cancelling and draining the in-flight blocking operation before returning control to Ruby.
a435547b9c taca devel/ruby-io-event: update to 1.19.4
1.19.4 (2026-07-27) * Capture errno immediately after epoll_wait / kevent, preventing stale or subsequently clobbered values from raising a spurious Errno::* when a native selector wait is interrupted or skipped.

The latest 5 of 8 in the history this site was built from.