diff --git a/private.h b/private.h index fecb51e..f37d418 100644 --- a/private.h +++ b/private.h @@ -81,11 +81,12 @@ struct uev; uev_type_t /* Internal API for dealing with generic watchers */ -int uev_watcher_init (uev_ctx_t *ctx, struct uev *w, uev_type_t type, - void (*cb)(struct uev *, void *, int), void *arg, - int fd, int events); -int uev_watcher_start(struct uev *w); -int uev_watcher_stop (struct uev *w); +int uev_watcher_init (uev_ctx_t *ctx, struct uev *w, uev_type_t type, + void (*cb)(struct uev *, void *, int), void *arg, + int fd, int events); +int uev_watcher_start (struct uev *w); +int uev_watcher_stop (struct uev *w); +int uev_watcher_active(struct uev *w); #endif /* LIBUEV_PRIVATE_H_ */ diff --git a/uev.c b/uev.c index 99cf505..0ade541 100644 --- a/uev.c +++ b/uev.c @@ -124,6 +124,15 @@ int uev_watcher_stop(uev_t *w) return 0; } +/* Private to libuEv, do not use directly! */ +int uev_watcher_active(uev_t *w) +{ + if (!w) + return 0; + + return w->active; +} + /** * Create an event loop context * @param ctx Pointer to an uev_ctx_t context to be initialized diff --git a/uev.h b/uev.h index 80ebdb7..4b5b3e4 100644 --- a/uev.h +++ b/uev.h @@ -41,6 +41,12 @@ #define UEV_ONCE 1 #define UEV_NONBLOCK 2 +/* Macros */ +#define uev_io_active(w) uev_watcher_active(w) +#define uev_timer_active(w) uev_watcher_active(w) +#define uev_cron_active(w) uev_watcher_active(w) +#define uev_signal_active(w) uev_watcher_active(w) + /* Event watcher */ typedef struct uev { /* Private data for libuEv internal engine */