This value is hardcoded here:
|
#define PROCESSX_INTERRUPT_INTERVAL 200 |
Is my understanding correct that this interval is there only to allow the interruption of the polling and in no way adds a (significant, i.e. proportional to its value) delay to the time it takes for, let's say, p$poll_io(-1) to return?
AFAIU processx leverages native libraries to provide overhead-less IO event forwarding (modulo interruptability). See:
- UNIX:
|
ret = poll(fds, nfds, PROCESSX_INTERRUPT_INTERVAL); |
- Windows:
|
if (selj == 0) { |
|
sres = processx__thread_getstatus(&bytes, &key, &overlapped, |
|
poll_timeout); |
|
} else { |
|
sres = processx__thread_getstatus_select(&bytes, &key, &overlapped, |
|
poll_timeout); |
|
} |
|
DWORD res = GetQueuedCompletionStatus( |
|
iocp, |
|
processx__thread_getstatus_data.lpNumberOfBytes, |
|
processx__thread_getstatus_data.lpCompletionKey, |
|
processx__thread_getstatus_data.lpOverlapped, |
|
processx__thread_getstatus_data.dwMilliseconds); |
This value is hardcoded here:
processx/src/processx.h
Line 78 in 6a16b63
Is my understanding correct that this interval is there only to allow the interruption of the polling and in no way adds a (significant, i.e. proportional to its value) delay to the time it takes for, let's say,
p$poll_io(-1)to return?AFAIU
processxleverages native libraries to provide overhead-less IO event forwarding (modulo interruptability). See:processx/src/processx-connection.c
Line 1965 in 6a16b63
processx/src/processx-connection.c
Lines 1154 to 1160 in 6a16b63
processx/src/win/thread.c
Lines 133 to 138 in 6a16b63