{{$NEXT}}
<<<<<<< HEAD
* Bump version to 0.010 for the post-restructure release candidate.
* Rewrite and expand POD across the selector, reactor, proactor, backend contract, and support modules so the dual-engine architecture is explained consistently.
* Refresh the examples directory to reflect the current reactor/proactor structure and retire stale pre-restructure examples.
* Update README and CI example checking so user-facing documentation stays aligned with the code.
=======
* Require explicit model selection in Linux::Event::Loop and Linux::Event->new.
Constructor calls must now pass model => 'reactor' or model => 'proactor'.
* Refresh tests, examples, README, and POD to reflect explicit model
selection and the post-restructure architecture.
>>>>>>> 1401c31 (prep for cpan and release, new tool added)
* Restructure the core loop into a forward-looking selector/engine layout.
Linux::Event::Loop is now the front-door selector, with the readiness
engine in Linux::Event::Reactor and the epoll backend in
Linux::Event::Reactor::Backend::Epoll.
* Add Linux::Event::Reactor::Backend and Linux::Event::Proactor::Backend
contract modules with backend contract POD for both engine families.
* Update the test suite and examples to use the new reactor backend
namespace and add a selector test covering reactor and proactor model
construction.
Revision history for Linux-Event
0.010 2026-03-09
- Require explicit model selection in Linux::Event::Loop and Linux::Event->new.
- Refresh tests, examples, README, and POD for the reactor/proactor selector architecture.
- Add release preparation helper script and GitHub release notes for 0.010.
0.009 2026-002-28
- fixed error where perl's scientific notation stringifies
0.008 2026-002-28
- fixed error where _rearm_timer cannot comput remaining duration and returns a non number
0.007 2026-02-22
- Fix: $loop->waker now installs an internal read watcher that drains the wakeup fd.
This makes $waker->signal (and $loop->stop after waker creation) reliably wake a
blocking backend wait (e.g. epoll_wait).
- Docs: waker fd is reserved for loop wakeups; user code must not watch/unwatch it.
0.006 2026-02-14
- Fix: stop() no longer falls into backend wait in the same tick after stop() is called.
- Fix: EPOLLONESHOT rearm is reliable even when the effective mask is unchanged.
- Fix: after(0) no longer disarms the timer; it arms a minimal non-zero delay for immediate scheduling.
- Fix: run()/run_once() derives epoll wait timeout from next timer deadline when no explicit timeout is provided.
- Tests: add regressions for stop/no-wait, EPOLLONESHOT rearm, oneshot watcher persistence, and after(0).
- Examples: add reliable oneshot+edge stress and a simple pipe throughput benchmark.
0.004 2026-02-14
- First stable API release.
- Split timer queue into Linux::Event::Scheduler (Loop delegates scheduling).
- Add signalfd integration: $loop->signal(...) with strict 4-argument callback ABI.
- Add eventfd-based wakeups: $loop->waker (user watches $waker->fh).
- Add pidfd integration: $loop->pid(...) for process-exit notifications (one-shot, replacement semantics per PID).
- Freeze dispatch order for I/O watchers: error, then read, then write.
- Freeze callback ABIs per watcher type (I/O, timer, signal, pid).
0.003_001 2026-02-12
- Development snapshot prior to 0.004 API freeze.
- Timers (after/at), I/O watchers (replacement semantics) and dispatch order tests.
0.002_001 2026-02-10
- Introduce Linux::Event::Watcher (mutable watcher handles).
- IO API: watch(...) returns a watcher; masks are internal.
- Watchers support data (avoid closure captures) and enable/disable toggles.
- Simplify timer API to seconds: after($seconds) and at($seconds).
0.001_001 2026-02-09
- First developer release of Linux::Event::Loop + Backend boundary.
- Epoll backend via Linux::Epoll.
- Deadline scheduler (ns) included.