diff options
author | Asbjørn Sloth Tønnesen <asbjorn@asbjorn.biz> | 2013-11-05 23:13:09 +0000 |
---|---|---|
committer | Asbjørn Sloth Tønnesen <asbjorn@asbjorn.biz> | 2013-11-06 13:40:19 +0000 |
commit | d8e931351822c2717a8845f403b217a8c8fcf52f (patch) | |
tree | 52ff02db24f69200e13f39a922b886b2663642de | |
parent | 9c6207b456cd0d2713d4b8c499d4278c809b80bc (diff) | |
download | lem-signal.tar.gz lem-signal.tar.xz lem-signal.zip |
signal: suppress libev strict-aliasing warningssignal
Signed-off-by: Asbjørn Sloth Tønnesen <asbjorn@asbjorn.biz>
-rw-r--r-- | lem/signal/core.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/lem/signal/core.c b/lem/signal/core.c index dacf4ea..285cdb1 100644 --- a/lem/signal/core.c +++ b/lem/signal/core.c @@ -83,7 +83,10 @@ signal_os_watch(lua_State *T, int sig) s = lem_xmalloc(sizeof(struct sigwatcher)); +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstrict-aliasing" ev_signal_init(&s->w, signal_os_handler, sig); +#pragma GCC diagnostic pop ev_set_priority(&s->w, EV_MAXPRI); ev_signal_start(LEM_ &s->w); ev_unref(LEM); /* watcher shouldn't keep loop alive */ @@ -196,9 +199,18 @@ signal_child_handler(EV_P_ struct ev_child *w, int revents) } static int +is_child_active(void) +{ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstrict-aliasing" + return ev_is_active(&signal_child_watcher); +#pragma GCC diagnostic pop +} + +static int signal_child_watch(lua_State *T) { - if (!ev_is_active(&signal_child_watcher)) { + if (!is_child_active()) { ev_child_start(LEM_ &signal_child_watcher); ev_unref(LEM); /* watcher shouldn't keep loop alive */ } @@ -209,7 +221,7 @@ signal_child_watch(lua_State *T) static int signal_child_unwatch(lua_State *T) { - if (ev_is_active(&signal_child_watcher)) { + if (is_child_active()) { ev_ref(LEM); ev_child_stop(LEM_ &signal_child_watcher); } @@ -325,7 +337,10 @@ int luaopen_lem_signal_core(lua_State *T) { #if EV_CHILD_ENABLE +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstrict-aliasing" ev_child_init(&signal_child_watcher, signal_child_handler, 0, 1); +#pragma GCC diagnostic pop #endif #if EV_SIGNAL_ENABLE |