You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Split out from discussion in #4 which is specific to polling the subprocesses to summarize my research so far.
The inotify events used in Filesystem are not supported on MacOS. Instead, we would need to use either a polling mechanism (os.scandir isn't "slow", but it's probably enough milliseconds to defeat Assay's emphasis on speed) or the C-level MacOS FSEvent polling mechanism.
There are third-party wrappers of FSEvent in Python, all of which include some sort of C extension, and most of which provide an abstraction over cross-platform filesystem monitoring. The most-supported one appears to be watchdog.
FSEvent uses a callback based approach to process events instead of returning a file descriptor that can be selected on by kqueue the way inotify does with epoll. This means that listening for fsevent changes will be fundamentally different from the other events that are happening in the monitor's main loop. (This leads me to wonder whether to refactor to let asyncio control the loop).
As an aside, one other place I noticed incorrect behaviour under macos is in unix.cpu_count() because /proc is a Linux-only thing. Perhaps it could be replaced with multiprocessing.cpu_count()?
The text was updated successfully, but these errors were encountered:
Split out from discussion in #4 which is specific to polling the subprocesses to summarize my research so far.
The inotify events used in Filesystem are not supported on MacOS. Instead, we would need to use either a polling mechanism (
os.scandir
isn't "slow", but it's probably enough milliseconds to defeat Assay's emphasis on speed) or the C-level MacOS FSEvent polling mechanism.There are third-party wrappers of FSEvent in Python, all of which include some sort of C extension, and most of which provide an abstraction over cross-platform filesystem monitoring. The most-supported one appears to be watchdog.
FSEvent uses a callback based approach to process events instead of returning a file descriptor that can be selected on by kqueue the way inotify does with epoll. This means that listening for fsevent changes will be fundamentally different from the other events that are happening in the monitor's main loop. (This leads me to wonder whether to refactor to let asyncio control the loop).
As an aside, one other place I noticed incorrect behaviour under macos is in
unix.cpu_count()
because/proc
is a Linux-only thing. Perhaps it could be replaced withmultiprocessing.cpu_count()
?The text was updated successfully, but these errors were encountered: