John-Mark Gurney 9e082a8487 | 5 years ago | |
---|---|---|
aiokq | 5 years ago | |
misc | 5 years ago | |
.gitignore | 5 years ago | |
LICENSE.txt | 5 years ago | |
Makefile | 5 years ago | |
README.md | 5 years ago | |
requirements.txt | 5 years ago | |
setup.py | 5 years ago |
This is a module to make select.kqueue module compatible with programs that use asyncio.
The core of kqueue is already implemented via the core asyncio, but other parts of kqueue, like EVFILT_VNODE and EVFILT_PROC are not. This module is currently limited to supporting basic EVFILT_VNODE functionality.
To watch a file for modification:
fp = open(fname)
async with aiokq.watch_file(fp) as wf:
while True:
data = fp.read()
# do some work on data
# wait for a modification
await wf()
The with symantics is required in order to address the race where a write is issued between the registration and the time that you do the read. There is the possibility that a wakeup happens and there are no modifications due to this race.