21 lines
624 B
Python
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)
|
|
|