File_descr_watcher_intf.S
provides an API for for watching a set of file descriptors
to see if they are ready for reading or writing.
We have two implementations, one using epoll, and one using select.
None of the functions need to be thread-safe, with the exception of
thread_safe_check
. So that implementations can easily do non-thread-safe actions,
checking for ready I/O is always done in three steps:
1. pre_check
, while holding the async lock
2. thread_safe_check
, while not holding the async lock
3. post_check
, while holding the async lock