diff options
author | Asbjørn Sloth Tønnesen <asbjorn@asbjorn.biz> | 2013-11-05 23:13:09 +0000 |
---|---|---|
committer | Emil Renner Berthing <esmil@mailme.dk> | 2013-11-11 20:51:31 +0100 |
commit | e43d512d81c50b97c938d0f3b2975b82d9aba180 (patch) | |
tree | a2d698393ec85ae2ef24171193d49b4902add9d1 | |
parent | 988a50b2843aae8729a61edc795ffe12a5f3e43d (diff) | |
download | lem-e43d512d81c50b97c938d0f3b2975b82d9aba180.tar.gz lem-e43d512d81c50b97c938d0f3b2975b82d9aba180.tar.xz lem-e43d512d81c50b97c938d0f3b2975b82d9aba180.zip |
suppress libev strict-aliasing warnings
Signed-off-by: Asbjørn Sloth Tønnesen <asbjorn@asbjorn.biz>
Signed-off-by: Emil Renner Berthing <esmil@mailme.dk>
-rw-r--r-- | bin/lem.c | 3 | ||||
-rw-r--r-- | bin/pool.c | 3 | ||||
-rw-r--r-- | lem/io/stream.c | 3 | ||||
-rw-r--r-- | lem/signal/core.c | 19 |
4 files changed, 26 insertions, 2 deletions
@@ -355,7 +355,10 @@ main(int argc, char *argv[]) lua_newtable(L); /* initialize runqueue */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstrict-aliasing" ev_idle_init(&rq.w, runqueue_pop); +#pragma GCC diagnostic pop ev_idle_start(LEM_ &rq.w); rq.queue = lem_xmalloc(LEM_INITIAL_QUEUESIZE * sizeof(struct lem_runqueue_slot)); @@ -128,7 +128,10 @@ pool_init(void) pool_done = NULL; */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstrict-aliasing" ev_async_init(&pool_watch, pool_cb); +#pragma GCC diagnostic pop ret = pthread_mutex_init(&pool_mutex, NULL); if (ret == 0) diff --git a/lem/io/stream.c b/lem/io/stream.c index e91cde8..9c53ecb 100644 --- a/lem/io/stream.c +++ b/lem/io/stream.c @@ -39,8 +39,11 @@ stream_new(lua_State *T, int fd, int mt) lua_setmetatable(T, -2); /* initialize userdata */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstrict-aliasing" ev_io_init(&s->r, NULL, fd, EV_READ); ev_io_init(&s->w, NULL, fd, EV_WRITE); +#pragma GCC diagnostic pop s->open = 1; s->r.data = NULL; s->w.data = NULL; diff --git a/lem/signal/core.c b/lem/signal/core.c index 8a8dae8..af89181 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 */ @@ -193,10 +196,19 @@ signal_child_handler(EV_P_ struct ev_child *w, int revents) lem_queue(S, 2); } +static inline int +signal_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 (!signal_child_active()) { ev_child_start(LEM_ &signal_child_watcher); ev_unref(LEM); /* watcher shouldn't keep loop alive */ } @@ -207,7 +219,7 @@ signal_child_watch(lua_State *T) static int signal_child_unwatch(lua_State *T) { - if (ev_is_active(&signal_child_watcher)) { + if (signal_child_active()) { ev_ref(LEM); ev_child_stop(LEM_ &signal_child_watcher); } @@ -321,7 +333,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 |