… | |
… | |
33 | # include <time.h> |
33 | # include <time.h> |
34 | #endif |
34 | #endif |
35 | |
35 | |
36 | // for IOM_SIG |
36 | // for IOM_SIG |
37 | #if IOM_SIG |
37 | #if IOM_SIG |
38 | # include <signal.h> |
38 | # include <csignal> |
39 | # include <fcntl.h> |
39 | # include <fcntl.h> |
40 | #endif |
40 | #endif |
41 | |
41 | |
42 | // if the BSDs would at least be marginally POSIX-compatible.. *sigh* |
42 | // if the BSDs would at least be marginally POSIX-compatible.. *sigh* |
43 | // until that happens, sys/select.h must come last |
43 | // until that happens, sys/select.h must come last |
… | |
… | |
380 | # if IOM_SIG |
380 | # if IOM_SIG |
381 | sigprocmask (SIG_BLOCK, &sigs, NULL); |
381 | sigprocmask (SIG_BLOCK, &sigs, NULL); |
382 | # endif |
382 | # endif |
383 | |
383 | |
384 | # if IOM_TIME |
384 | # if IOM_TIME |
|
|
385 | { |
|
|
386 | // update time, try to compensate for gross non-monotonic time changes |
|
|
387 | tstamp diff = NOW; |
385 | set_now (); |
388 | set_now (); |
|
|
389 | diff = NOW - diff; |
|
|
390 | |
|
|
391 | if (diff < 0) |
|
|
392 | for (io_manager_vec<time_watcher>::const_iterator i = tw.end (); i-- > tw.begin (); ) |
|
|
393 | if (*i) |
|
|
394 | (*i)->at += diff; |
|
|
395 | } |
386 | # endif |
396 | # endif |
387 | |
397 | |
388 | if (fds > 0) |
398 | if (fds > 0) |
389 | { |
399 | { |
390 | # if IOM_SIG |
400 | # if IOM_SIG |