Add EventLoop#wait_[readable|writable]
methods
#15376
Open
+122
−18
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.
Adds two methods to the
Crystal::EventLoop
interfaces to wait on a file descriptor or socket readiness (read or write) without doing the actual read or write operations, which can be delegated to an external library.This provides a semi-public interface to work around #15374:
This is implemented for the polling event loops (epoll, kqueue) as well as libevent since these were straightforward.
Windows is left unimplemented. It might be implemented with
WSAPoll
running in a thread orProcessSocketNotifications
to associate sockets to a completion port. See Winsock socket state notifications for more details.Related to RFC #0007 and RFC #0009.