diff options
Diffstat (limited to 'venv/lib/python3.11/site-packages/uvloop/handles/fsevent.pyx')
-rw-r--r-- | venv/lib/python3.11/site-packages/uvloop/handles/fsevent.pyx | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/venv/lib/python3.11/site-packages/uvloop/handles/fsevent.pyx b/venv/lib/python3.11/site-packages/uvloop/handles/fsevent.pyx deleted file mode 100644 index 6ed6433..0000000 --- a/venv/lib/python3.11/site-packages/uvloop/handles/fsevent.pyx +++ /dev/null @@ -1,116 +0,0 @@ -import enum - - -class FileSystemEvent(enum.IntEnum): - RENAME = uv.UV_RENAME - CHANGE = uv.UV_CHANGE - RENAME_CHANGE = RENAME | CHANGE - - -@cython.no_gc_clear -cdef class UVFSEvent(UVHandle): - cdef _init(self, Loop loop, object callback, object context): - cdef int err - - self._start_init(loop) - - self._handle = <uv.uv_handle_t*>PyMem_RawMalloc( - sizeof(uv.uv_fs_event_t) - ) - if self._handle is NULL: - self._abort_init() - raise MemoryError() - - err = uv.uv_fs_event_init( - self._loop.uvloop, <uv.uv_fs_event_t*>self._handle - ) - if err < 0: - self._abort_init() - raise convert_error(err) - - self._finish_init() - - self.running = 0 - self.callback = callback - if context is None: - context = Context_CopyCurrent() - self.context = context - - cdef start(self, char* path, int flags): - cdef int err - - self._ensure_alive() - - if self.running == 0: - err = uv.uv_fs_event_start( - <uv.uv_fs_event_t*>self._handle, - __uvfsevent_callback, - path, - flags, - ) - if err < 0: - exc = convert_error(err) - self._fatal_error(exc, True) - return - self.running = 1 - - cdef stop(self): - cdef int err - - if not self._is_alive(): - self.running = 0 - return - - if self.running == 1: - err = uv.uv_fs_event_stop(<uv.uv_fs_event_t*>self._handle) - self.running = 0 - if err < 0: - exc = convert_error(err) - self._fatal_error(exc, True) - return - - cdef _close(self): - try: - self.stop() - finally: - UVHandle._close(<UVHandle>self) - - def cancel(self): - self._close() - - def cancelled(self): - return self.running == 0 - - @staticmethod - cdef UVFSEvent new(Loop loop, object callback, object context): - cdef UVFSEvent handle - handle = UVFSEvent.__new__(UVFSEvent) - handle._init(loop, callback, context) - return handle - - -cdef void __uvfsevent_callback( - uv.uv_fs_event_t* handle, - const char *filename, - int events, - int status, -) noexcept with gil: - if __ensure_handle_data( - <uv.uv_handle_t*>handle, "UVFSEvent callback" - ) == 0: - return - - cdef: - UVFSEvent fs_event = <UVFSEvent> handle.data - Handle h - - try: - h = new_Handle( - fs_event._loop, - fs_event.callback, - (filename, FileSystemEvent(events)), - fs_event.context, - ) - h._run() - except BaseException as ex: - fs_event._error(ex, False) |