Path to this page:
./
devel/ruby-io-event,
Provides low level cross-platform primitives
Branch: CURRENT,
Version: 1.9.0,
Package name: ruby32-io-event-1.9.0,
Maintainer: pkgsrc-usersIO::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.
Master sites:
Filesize: 45.5 KB
Version history: (Expand)
- (2025-02-23) Updated to version: ruby32-io-event-1.9.0
- (2025-02-09) Updated to version: ruby32-io-event-1.8.4
- (2024-12-15) Updated to version: ruby32-io-event-1.7.5
- (2024-12-08) Updated to version: ruby32-io-event-1.7.4
- (2024-10-27) Updated to version: ruby32-io-event-1.7.3
- (2024-10-21) Updated to version: ruby32-io-event-1.7.2
CVS history: (Expand)
2025-02-23 14:58:26 by Takahiro Kambe | Files touched by this commit (3) |  |
Log message:
devel/ruby-io-event: update to 1.9.0
1.9.0 (2025-02-10)
* Improved IO::Event::Profiler for detecting stalls.
|
2025-02-09 10:03:20 by Takahiro Kambe | Files touched by this commit (3) |  |
Log message:
devel/ruby-io-event: update to 1.8.4
1.8.0 (2025-02-05)
Detecting fibers that are stalling the event loop.
A new (experimental) feature for detecting fiber stalls has been added.
This feature is disabled by default and can be enabled by setting the
IO_EVENT_SELECTOR_STALL_LOG_THRESHOLD to true or a floating point number
representing the threshold in seconds.
When enabled, the event loop will measure and profile user code when
resuming a fiber. If the fiber takes too long to return back to the event
loop, the event loop will log a warning message with a profile of the
fiber's execution.
> cat test.rb
#!/usr/bin/env ruby
require_relative "lib/async"
Async do
Fiber.blocking do
sleep 1
end
end
> IO_EVENT_SELECTOR_STALL_LOG_THRESHOLD=true bundle exec ./test.rb
Fiber stalled for 1.003 seconds
/home/samuel/Developer/socketry/async/test.rb:6 in \
'#<Class:Fiber>#blocking' (1s)
/home/samuel/Developer/socketry/async/test.rb:7 in 'Kernel#sleep' (1s)
There is a performance overhead to this feature, so it is recommended to
only enable it when debugging performance issues.
1.8.1 (2025-02-05)
* Fix macOS build issues.
* Initial rework of call tracking.
1.8.2 (2025-02-05)
* Rename event -> call.
* Fix profiling.
1.8.3 (2025-02-05)
* Output profile log as JSON if !istty.
1.8.4 (2025-02-05)
* Correctly calculate total duration in output formatting.
|
2024-12-15 14:26:05 by Takahiro Kambe | Files touched by this commit (3) |  |
Log message:
devel/ruby-io-event: update to 1.7.5
1.7.5 (2024-12-15)
* Fix process_wait race condition on EPoll that could cause a hang.
|
2024-12-08 17:13:51 by Takahiro Kambe | Files touched by this commit (2) |  |
Log message:
devel/ruby-io-event: update to 1.7.4
1.7.4 (2024-11-24)
* Check the process status before waiting, it appears to be edge
triggered. (#125)
|
2024-10-27 14:35:19 by Takahiro Kambe | Files touched by this commit (2) |  |
Log message:
devel/ruby-io-event: update to 1.7.3
1.7.3 (2024-10-11)
* Prefer static const over enum.
* Add write barriers to IO_Event_Selector_resume/_raise. (#124)
|
2024-10-21 15:34:39 by Takahiro Kambe | Files touched by this commit (2) |  |
Log message:
devel/ruby-io-event: update to 1.7.2
1.7.2 (2024-10-16)
* Add fifo test. (#91)
* Initial support for pread/pwrite in uring backend.
* Add debug workflow with sanitizers enabled. (#115)
* Add waiting fiber write barrier for all selector implementations. (#122)
|
2024-10-13 18:25:56 by Takahiro Kambe | Files touched by this commit (2) |  |
Log message:
devel/ruby-io-event: update to 1.7.1
1.7.1 (2024-10-04)
What's Changed
* Include free list size in URing memsize by @casperisfine in #120
* Prefer RB_OBJ_WRITE over RB_OBJ_WRITTEN by @casperisfine in #119
* Trigger write barriers when setting IO_Event_Selector_EPoll_Descriptor.io
by @casperisfine in #118
|
2024-06-30 18:03:22 by Takahiro Kambe | Files touched by this commit (2) |  |
Log message:
devel/ruby-io-event: update to 1.6.5
1.6.5 (2024-06-23)
What's Changed
* Fix idle load computation. by @ioquatix in #110
|