toaruos/util/python-demos/fswait.py

21 lines
624 B
Python

import ctypes
_lib = None
if not _lib:
_lib = ctypes.CDLL('libc.so')
_lib.syscall_fswait.argtypes = [ctypes.c_int,ctypes.POINTER(ctypes.c_int)]
_lib.syscall_fswait.restype = ctypes.c_int
_lib.syscall_fswait2.argtypes = [ctypes.c_int,ctypes.POINTER(ctypes.c_int),ctypes.c_int]
_lib.syscall_fswait2.restype = ctypes.c_int
def fswait(files,timeout=None):
fds = (ctypes.c_int * len(files))()
for i in range(len(files)):
fds[i] = files[i].fileno()
if timeout is None:
return _lib.syscall_fswait(len(fds),fds)
else:
return _lib.syscall_fswait2(len(fds),fds,timeout)