diff options
author | Emil Renner Berthing <esmil@mailme.dk> | 2013-11-20 22:33:34 +0100 |
---|---|---|
committer | Emil Renner Berthing <esmil@mailme.dk> | 2013-11-21 10:01:57 +0100 |
commit | c87c5a5619b1ece8ff4522dcfb688191610526f9 (patch) | |
tree | 6b1250bda4d5d163d9bdcfdd3350c8ea868cfea3 | |
parent | b02a0cd8702ba794ff5c7eddfbb40d005d8a1e56 (diff) | |
download | lem-c87c5a5619b1ece8ff4522dcfb688191610526f9.tar.gz lem-c87c5a5619b1ece8ff4522dcfb688191610526f9.tar.xz lem-c87c5a5619b1ece8ff4522dcfb688191610526f9.zip |
fix pragmas for old GCCs
-rw-r--r-- | bin/lem.c | 14 | ||||
-rw-r--r-- | bin/pool.c | 14 | ||||
-rw-r--r-- | lem/io/stream.c | 16 | ||||
-rw-r--r-- | lem/signal/core.c | 31 |
4 files changed, 51 insertions, 24 deletions
@@ -323,6 +323,15 @@ queue_file(int argc, char *argv[], int fidx) return 0; } +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstrict-aliasing" +static inline void +runqueue_wait_init(void) +{ + ev_idle_init(&rq.w, runqueue_pop); +} +#pragma GCC diagnostic pop + int main(int argc, char *argv[]) { @@ -355,10 +364,7 @@ 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 + runqueue_wait_init(); ev_idle_start(LEM_ &rq.w); rq.queue = lem_xmalloc(LEM_INITIAL_QUEUESIZE * sizeof(struct lem_runqueue_slot)); @@ -110,6 +110,15 @@ pool_cb(EV_P_ struct ev_async *w, int revents) ev_async_stop(EV_A_ w); } +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstrict-aliasing" +static inline void +pool_watch_init(void) +{ + ev_async_init(&pool_watch, pool_cb); +} +#pragma GCC diagnostic pop + static int pool_init(void) { @@ -128,10 +137,7 @@ 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 + pool_watch_init(); ret = pthread_mutex_init(&pool_mutex, NULL); if (ret == 0) diff --git a/lem/io/stream.c b/lem/io/stream.c index 9c53ecb..610567e 100644 --- a/lem/io/stream.c +++ b/lem/io/stream.c @@ -30,6 +30,16 @@ struct stream { #define STREAM_FROM_WATCH(w, member)\ (struct stream *)(((char *)w) - offsetof(struct stream, member)) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstrict-aliasing" +static inline void +stream_watch_init(struct stream *s, int fd) +{ + ev_io_init(&s->r, NULL, fd, EV_READ); + ev_io_init(&s->w, NULL, fd, EV_WRITE); +} +#pragma GCC diagnostic pop + static struct stream * stream_new(lua_State *T, int fd, int mt) { @@ -39,11 +49,7 @@ 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 + stream_watch_init(s, fd); s->open = 1; s->r.data = NULL; s->w.data = NULL; diff --git a/lem/signal/core.c b/lem/signal/core.c index f7139d2..2f6f228 100644 --- a/lem/signal/core.c +++ b/lem/signal/core.c @@ -76,6 +76,15 @@ signal_os_handler(EV_P_ struct ev_signal *w, int revents) lem_queue(S, 1); } +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstrict-aliasing" +static inline void +signal_watcher_init(struct sigwatcher *s, int sig) +{ + ev_signal_init(&s->w, signal_os_handler, sig); +} +#pragma GCC diagnostic pop + static int signal_os_watch(lua_State *T, int sig) { @@ -86,10 +95,7 @@ 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 + signal_watcher_init(s, sig); ev_set_priority(&s->w, EV_MAXPRI); ev_signal_start(LEM_ &s->w); ev_unref(LEM); /* watcher shouldn't keep loop alive */ @@ -199,14 +205,20 @@ signal_child_handler(EV_P_ struct ev_child *w, int revents) lem_queue(S, 2); } +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstrict-aliasing" +static inline void +signal_child_watcher_init(void) +{ + ev_child_init(&signal_child_watcher, signal_child_handler, 0, 1); +} + 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 } +#pragma GCC diagnostic pop static int signal_child_watch(lua_State *T) @@ -336,10 +348,7 @@ 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 + signal_child_watcher_init(); #endif #if EV_SIGNAL_ENABLE |