[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