A simple wrapper for kqueue VNODE (for now) functionality to be asyncio compatible.
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
John-Mark Gurney 9e082a8487 add sample program testing if a directory can be watched 9 месяцев назад
aiokq add a wrapper around kqueue for VNODE that is asyncio friendly. 9 месяцев назад
misc add sample program testing if a directory can be watched 9 месяцев назад
.gitignore add a wrapper around kqueue for VNODE that is asyncio friendly. 9 месяцев назад
LICENSE.txt add a wrapper around kqueue for VNODE that is asyncio friendly. 9 месяцев назад
Makefile add a wrapper around kqueue for VNODE that is asyncio friendly. 9 месяцев назад
README.md add a wrapper around kqueue for VNODE that is asyncio friendly. 9 месяцев назад
requirements.txt add a wrapper around kqueue for VNODE that is asyncio friendly. 9 месяцев назад
setup.py add a wrapper around kqueue for VNODE that is asyncio friendly. 9 месяцев назад

README.md

aiokq

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.

Sample Usage

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.