|John-Mark Gurney 9e082a8487||8 months ago|
|aiokq||8 months ago|
|misc||8 months ago|
|.gitignore||8 months ago|
|LICENSE.txt||8 months ago|
|Makefile||8 months ago|
|README.md||8 months ago|
|requirements.txt||8 months ago|
|setup.py||8 months 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.