domfarolino / browser

Simple browser components
4 stars 1 forks source link

Implement TaskLoopForIOLinux #60

Closed domfarolino closed 1 year ago

domfarolino commented 1 year ago

TaskLoopForIO was first introduced in https://github.com/domfarolino/browser/pull/25, with the macOS implementation based on kqueue for BSD operating systems.

Since there was no implementation for Linux, all tests that exercised TaskLoopForIO had to be disabled for Linux. This PR implements TaskLoopForIO on Linux (concretely, TaskLoopForIOLinux) and enables the entire base_tests suite for that platform. TaskLoopForIOLinux is based on epoll, and has been implemented to have identical IO reading and wakeup semantics to TaskLoopForIOMac.

This PR is based on top of @pmusgrave's heroic work in https://github.com/domfarolino/browser/pull/53, which has been stalled. I'll close that PR and continue the implementation over here, as it is currently blocking the mage IPC implementation in #32.


Closes https://github.com/domfarolino/browser/issues/33.

pmusgrave commented 1 year ago

LGTM! Glad you were able to get this over the finish line