… | |
… | |
390 | |
390 | |
391 | int wd; /* wd for inotify, fd for kqueue */ |
391 | int wd; /* wd for inotify, fd for kqueue */ |
392 | } ev_stat; |
392 | } ev_stat; |
393 | #endif |
393 | #endif |
394 | |
394 | |
395 | #if EV_IDLE_ENABLE |
|
|
396 | /* invoked when the nothing else needs to be done, keeps the process from blocking */ |
395 | /* invoked when the nothing else needs to be done, keeps the process from blocking */ |
397 | /* revent EV_IDLE */ |
396 | /* revent EV_IDLE */ |
398 | typedef struct ev_idle |
397 | typedef struct ev_idle |
399 | { |
398 | { |
400 | EV_WATCHER (ev_idle) |
399 | EV_WATCHER (ev_idle) |
401 | } ev_idle; |
400 | } ev_idle; |
402 | #endif |
|
|
403 | |
401 | |
404 | /* invoked for each run of the mainloop, just before the blocking call */ |
402 | /* invoked for each run of the mainloop, just before the blocking call */ |
405 | /* you can still change events in any way you like */ |
403 | /* you can still change events in any way you like */ |
406 | /* revent EV_PREPARE */ |
404 | /* revent EV_PREPARE */ |
407 | typedef struct ev_prepare |
405 | typedef struct ev_prepare |
… | |
… | |
414 | typedef struct ev_check |
412 | typedef struct ev_check |
415 | { |
413 | { |
416 | EV_WATCHER (ev_check) |
414 | EV_WATCHER (ev_check) |
417 | } ev_check; |
415 | } ev_check; |
418 | |
416 | |
419 | #if EV_FORK_ENABLE |
|
|
420 | /* the callback gets invoked before check in the child process when a fork was detected */ |
417 | /* the callback gets invoked before check in the child process when a fork was detected */ |
421 | /* revent EV_FORK */ |
418 | /* revent EV_FORK */ |
422 | typedef struct ev_fork |
419 | typedef struct ev_fork |
423 | { |
420 | { |
424 | EV_WATCHER (ev_fork) |
421 | EV_WATCHER (ev_fork) |
425 | } ev_fork; |
422 | } ev_fork; |
426 | #endif |
|
|
427 | |
423 | |
428 | #if EV_CLEANUP_ENABLE |
|
|
429 | /* is invoked just before the loop gets destroyed */ |
424 | /* is invoked just before the loop gets destroyed */ |
430 | /* revent EV_CLEANUP */ |
425 | /* revent EV_CLEANUP */ |
431 | typedef struct ev_cleanup |
426 | typedef struct ev_cleanup |
432 | { |
427 | { |
433 | EV_WATCHER (ev_cleanup) |
428 | EV_WATCHER (ev_cleanup) |
434 | } ev_cleanup; |
429 | } ev_cleanup; |
435 | #endif |
|
|
436 | |
430 | |
437 | #if EV_EMBED_ENABLE |
431 | #if EV_EMBED_ENABLE |
438 | /* used to embed an event loop inside another */ |
432 | /* used to embed an event loop inside another */ |
439 | /* the callback gets invoked when the event loop has handled events, and can be 0 */ |
433 | /* the callback gets invoked when the event loop has handled events, and can be 0 */ |
440 | typedef struct ev_embed |
434 | typedef struct ev_embed |
441 | { |
435 | { |
442 | EV_WATCHER (ev_embed) |
436 | EV_WATCHER (ev_embed) |
443 | |
437 | |
444 | struct ev_loop *other; /* ro */ |
438 | struct ev_loop *other; /* ro */ |
|
|
439 | #undef EV_IO_ENABLE |
|
|
440 | #define EV_IO_ENABLE 1 |
445 | ev_io io; /* private */ |
441 | ev_io io; /* private */ |
|
|
442 | #undef EV_PREPARE_ENABLE |
|
|
443 | #define EV_PREPARE_ENABLE 1 |
446 | ev_prepare prepare; /* private */ |
444 | ev_prepare prepare; /* private */ |
447 | ev_check check; /* unused */ |
445 | ev_check check; /* unused */ |
448 | ev_timer timer; /* unused */ |
446 | ev_timer timer; /* unused */ |
449 | ev_periodic periodic; /* unused */ |
447 | ev_periodic periodic; /* unused */ |
450 | ev_idle idle; /* unused */ |
448 | ev_idle idle; /* unused */ |
451 | ev_fork fork; /* private */ |
449 | ev_fork fork; /* private */ |
452 | #if EV_CLEANUP_ENABLE |
|
|
453 | ev_cleanup cleanup; /* unused */ |
450 | ev_cleanup cleanup; /* unused */ |
454 | #endif |
|
|
455 | } ev_embed; |
451 | } ev_embed; |
456 | #endif |
452 | #endif |
457 | |
453 | |
458 | #if EV_ASYNC_ENABLE |
454 | #if EV_ASYNC_ENABLE |
459 | /* invoked when somebody calls ev_async_send on the watcher */ |
455 | /* invoked when somebody calls ev_async_send on the watcher */ |
… | |
… | |
658 | * convenience function, wait for a single event, without registering an event watcher |
654 | * convenience function, wait for a single event, without registering an event watcher |
659 | * if timeout is < 0, do wait indefinitely |
655 | * if timeout is < 0, do wait indefinitely |
660 | */ |
656 | */ |
661 | EV_API_DECL void ev_once (EV_P_ int fd, int events, ev_tstamp timeout, void (*cb)(int revents, void *arg), void *arg) EV_NOEXCEPT; |
657 | EV_API_DECL void ev_once (EV_P_ int fd, int events, ev_tstamp timeout, void (*cb)(int revents, void *arg), void *arg) EV_NOEXCEPT; |
662 | |
658 | |
|
|
659 | EV_API_DECL void ev_invoke_pending (EV_P); /* invoke all pending watchers */ |
|
|
660 | |
663 | # if EV_FEATURE_API |
661 | # if EV_FEATURE_API |
664 | EV_API_DECL unsigned int ev_iteration (EV_P) EV_NOEXCEPT; /* number of loop iterations */ |
662 | EV_API_DECL unsigned int ev_iteration (EV_P) EV_NOEXCEPT; /* number of loop iterations */ |
665 | EV_API_DECL unsigned int ev_depth (EV_P) EV_NOEXCEPT; /* #ev_loop enters - #ev_loop leaves */ |
663 | EV_API_DECL unsigned int ev_depth (EV_P) EV_NOEXCEPT; /* #ev_loop enters - #ev_loop leaves */ |
666 | EV_API_DECL void ev_verify (EV_P) EV_NOEXCEPT; /* abort if loop data corrupted */ |
664 | EV_API_DECL void ev_verify (EV_P) EV_NOEXCEPT; /* abort if loop data corrupted */ |
667 | |
665 | |
… | |
… | |
675 | EV_API_DECL void ev_set_invoke_pending_cb (EV_P_ ev_loop_callback invoke_pending_cb) EV_NOEXCEPT; |
673 | EV_API_DECL void ev_set_invoke_pending_cb (EV_P_ ev_loop_callback invoke_pending_cb) EV_NOEXCEPT; |
676 | /* C++ doesn't allow the use of the ev_loop_callback typedef here, so we need to spell it out */ |
674 | /* C++ doesn't allow the use of the ev_loop_callback typedef here, so we need to spell it out */ |
677 | EV_API_DECL void ev_set_loop_release_cb (EV_P_ void (*release)(EV_P) EV_NOEXCEPT, void (*acquire)(EV_P) EV_NOEXCEPT) EV_NOEXCEPT; |
675 | EV_API_DECL void ev_set_loop_release_cb (EV_P_ void (*release)(EV_P) EV_NOEXCEPT, void (*acquire)(EV_P) EV_NOEXCEPT) EV_NOEXCEPT; |
678 | |
676 | |
679 | EV_API_DECL unsigned int ev_pending_count (EV_P) EV_NOEXCEPT; /* number of pending events, if any */ |
677 | EV_API_DECL unsigned int ev_pending_count (EV_P) EV_NOEXCEPT; /* number of pending events, if any */ |
680 | EV_API_DECL void ev_invoke_pending (EV_P); /* invoke all pending watchers */ |
|
|
681 | |
678 | |
682 | /* |
679 | /* |
683 | * stop/start the timer handling. |
680 | * stop/start the timer handling. |
684 | */ |
681 | */ |
685 | EV_API_DECL void ev_suspend (EV_P) EV_NOEXCEPT; |
682 | EV_API_DECL void ev_suspend (EV_P) EV_NOEXCEPT; |