Introduce Crystal::EventLoop
namespace
#15226
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The event loop implementations are scattered a bit everywhere, or buried inside
src/crystal/system/os
when they don't use theCrystal::System
namespace at all.This patch groups all the implementations under
Crystal::EventLoop
insrc/crystal/event_loop
. Of course the system parts are kept in (or moved to)Crystal::System
.Crystal::Evented::EventLoop
=>Crystal::EventLoop::Polling
(abstract)Crystal::Epoll::EventLoop
=>Crystal::EventLoop::Epoll
Crystal::Kqueue::EventLoop
=>Crystal::EventLoop::Kqueue
Crystal::LibEvent::EventLoop
=>Crystal::EventLoop::LibEvent
Crystal::IOCP::EventLoop
=>Crystal::EventLoop::IOCP
Crystal::IOCP
=>Crystal::System::IOCP
A new evloop, for example
io_uring
, would naturally be implemented asCrystal::EventLoop::IoUring
.Builds on top of #15206. See commit 5cd85da.