[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] Added epoll support for aio.c on unix (#528)
smalltalking
notifications at github.com
Sun Oct 18 23:59:03 UTC 2020
When HAVE_CONFIG_H and HAVE_EPOLL is true (the former is pretty much always
true), the select-based aio implementation is replaced with an epoll-based one.
The epoll variant has a few advantages:
- it is free of the lost readSemaphore signals bug (see the comments of
Socket's various #waitFor* methods which wait on readSemaphore).
- idle CPU usage is down from ~10% to ~2%
- faster Socket operations
Known issue:
- when the VM quits, an error message appears from aioDisable() because
the file descriptor about to be removed from the epoll set has already
been closed, therefore it's not in the set. It can be worked around
by supressing error messages when aioDisable() is called by aioFini()
You can view, comment on, or merge this pull request online at:
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/528
-- Commit Summary --
* Added epoll support for aio.c on unix
-- File Changes --
M platforms/unix/vm/aio.c (356)
-- Patch Links --
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/528.patch
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/528.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/528
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20201018/a1bfa754/attachment.html>
More information about the Vm-dev
mailing list