Tune dependency to fdev-epoll 53/15753/1
authorJose Bollo <jose.bollo@iot.bzh>
Wed, 25 Jul 2018 14:48:42 +0000 (16:48 +0200)
committerJose Bollo <jose.bollo@iot.bzh>
Wed, 25 Jul 2018 15:29:21 +0000 (17:29 +0200)
The dependency to fdev-epoll is not real
at the moment because afb-daemon still uses
systemd event loop mechanisms. At the end
use of it will depend on the conditional
compilation flag as REMOVE_SYSTEMD_EVENT here.

Change-Id: I46e65cddafef05a9418cd4cf4d5cbf596ebeda49
Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
src/afb-fdev.c
src/jobs.c
src/jobs.h

index 2c96ef5..8e3358d 100644 (file)
 #include "fdev.h"
 
 #if !defined(REMOVE_SYSTEMD_EVENT)
-#   define USE_SYSTEMD 1
-#   define USE_EPOLL   0
-#else
-#   define USE_SYSTEMD 0
-#   define USE_EPOLL   1
-#endif
-
-#if USE_SYSTEMD
 
 #include "afb-systemd.h"
 #include "fdev-systemd.h"
@@ -35,9 +27,7 @@ struct fdev *afb_fdev_create(int fd)
        return fdev_systemd_create(afb_systemd_get_event_loop(), fd);
 }
 
-#endif
-
-#if USE_EPOLL
+#else
 
 #include "jobs.h"
 #include "fdev-epoll.h"
index 26fc015..16434d4 100644 (file)
 #include "jobs.h"
 #include "sig-monitor.h"
 #include "verbose.h"
+
+#if defined(REMOVE_SYSTEMD_EVENT)
 #include "fdev-epoll.h"
+#endif
+
 #if 0
 #define _alert_ "do you really want to remove signal monitoring?"
 #define sig_monitor_init_timeouts()  ((void)0)
@@ -131,11 +135,11 @@ static struct job *free_jobs;
 
 /* event loop */
 static struct evloop evloop[1];
+
+#if defined(REMOVE_SYSTEMD_EVENT)
 static struct fdev_epoll *fdevepoll;
-#if !defined(REMOVE_SYSTEMD_EVENT)
-__attribute__((unused))
-#endif
 static int waitevt;
+#endif
 
 /**
  * Create a new job with the given parameters
@@ -269,6 +273,7 @@ static void job_cancel(int signum, void *arg)
        job->callback(SIGABRT, job->arg);
 }
 
+#if defined(REMOVE_SYSTEMD_EVENT)
 /**
  * Gets a fdev_epoll item.
  * @return a fdev_epoll or NULL in case of error
@@ -283,6 +288,7 @@ static struct fdev_epoll *get_fdevepoll()
 
        return result;
 }
+#endif
 
 /**
  * Monitored normal callback for events.
@@ -331,6 +337,7 @@ static void evloop_run(int signum, void *arg)
 }
 
 
+#if defined(REMOVE_SYSTEMD_EVENT)
 /**
  * Monitored normal loop for waiting events.
  * @param signum 0 on normal flow or the number
@@ -338,9 +345,6 @@ static void evloop_run(int signum, void *arg)
  *               flow
  * @param arg     the events to run
  */
-#if !defined(REMOVE_SYSTEMD_EVENT)
-__attribute__((unused))
-#endif
 static void monitored_wait_and_dispatch(int signum, void *arg)
 {
        struct fdev_epoll *fdev_epoll = arg;
@@ -348,6 +352,7 @@ static void monitored_wait_and_dispatch(int signum, void *arg)
                fdev_epoll_wait_and_dispatch(fdev_epoll, -1);
        }
 }
+#endif
 
 /**
  * Main processing loop of threads processing jobs.
@@ -823,6 +828,7 @@ struct sd_event *jobs_get_sd_event()
        return result;
 }
 
+#if defined(REMOVE_SYSTEMD_EVENT)
 /**
  * Gets the fdev_epoll item.
  * @return a fdev_epoll or NULL in case of error
@@ -837,6 +843,7 @@ struct fdev_epoll *jobs_get_fdev_epoll()
 
        return result;
 }
+#endif
 
 /**
  * Enter the jobs processing loop.
index 8ad6efc..58adc1c 100644 (file)
@@ -17,8 +17,6 @@
 
 #pragma once
 
-struct fdev_epoll;
-struct sd_event;
 struct jobloop;
 
 extern int jobs_queue(
@@ -41,9 +39,6 @@ extern int jobs_call(
                void (*callback)(int, void*),
                void *arg);
 
-extern struct sd_event *jobs_get_sd_event();
-extern struct fdev_epoll *jobs_get_fdev_epoll();
-
 extern void jobs_terminate();
 
 extern int jobs_start(
@@ -53,3 +48,10 @@ extern int jobs_start(
                void (*start)(int signum, void* arg),
                void *arg);
 
+#if !defined(REMOVE_SYSTEMD_EVENT)
+struct sd_event;
+extern struct sd_event *jobs_get_sd_event();
+#else
+struct fdev_epoll;
+extern struct fdev_epoll *jobs_get_fdev_epoll();
+#endif