summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAsbjørn Sloth Tønnesen <asbjorn@asbjorn.biz>2013-11-05 23:13:09 +0000
committerAsbjørn Sloth Tønnesen <asbjorn@asbjorn.biz>2013-11-06 13:40:19 +0000
commitd8e931351822c2717a8845f403b217a8c8fcf52f (patch)
tree52ff02db24f69200e13f39a922b886b2663642de
parent9c6207b456cd0d2713d4b8c499d4278c809b80bc (diff)
downloadlem-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.c19
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