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>
#include "fdev.h"
#if !defined(REMOVE_SYSTEMD_EVENT)
#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"
#include "afb-systemd.h"
#include "fdev-systemd.h"
return fdev_systemd_create(afb_systemd_get_event_loop(), fd);
}
return fdev_systemd_create(afb_systemd_get_event_loop(), fd);
}
#include "jobs.h"
#include "fdev-epoll.h"
#include "jobs.h"
#include "fdev-epoll.h"
#include "jobs.h"
#include "sig-monitor.h"
#include "verbose.h"
#include "jobs.h"
#include "sig-monitor.h"
#include "verbose.h"
+
+#if defined(REMOVE_SYSTEMD_EVENT)
#if 0
#define _alert_ "do you really want to remove signal monitoring?"
#define sig_monitor_init_timeouts() ((void)0)
#if 0
#define _alert_ "do you really want to remove signal monitoring?"
#define sig_monitor_init_timeouts() ((void)0)
/* event loop */
static struct evloop evloop[1];
/* event loop */
static struct evloop evloop[1];
+
+#if defined(REMOVE_SYSTEMD_EVENT)
static struct fdev_epoll *fdevepoll;
static struct fdev_epoll *fdevepoll;
-#if !defined(REMOVE_SYSTEMD_EVENT)
-__attribute__((unused))
-#endif
/**
* Create a new job with the given parameters
/**
* Create a new job with the given parameters
job->callback(SIGABRT, job->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
/**
* Gets a fdev_epoll item.
* @return a fdev_epoll or NULL in case of error
/**
* Monitored normal callback for events.
/**
* Monitored normal callback for events.
+#if defined(REMOVE_SYSTEMD_EVENT)
/**
* Monitored normal loop for waiting events.
* @param signum 0 on normal flow or the number
/**
* Monitored normal loop for waiting events.
* @param signum 0 on normal flow or the number
* flow
* @param arg the events to run
*/
* 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;
static void monitored_wait_and_dispatch(int signum, void *arg)
{
struct fdev_epoll *fdev_epoll = arg;
fdev_epoll_wait_and_dispatch(fdev_epoll, -1);
}
}
fdev_epoll_wait_and_dispatch(fdev_epoll, -1);
}
}
/**
* Main processing loop of threads processing jobs.
/**
* Main processing loop of threads processing jobs.
+#if defined(REMOVE_SYSTEMD_EVENT)
/**
* Gets the fdev_epoll item.
* @return a fdev_epoll or NULL in case of error
/**
* Gets the fdev_epoll item.
* @return a fdev_epoll or NULL in case of error
/**
* Enter the jobs processing loop.
/**
* Enter the jobs processing loop.
-struct fdev_epoll;
-struct sd_event;
struct jobloop;
extern int jobs_queue(
struct jobloop;
extern int jobs_queue(
void (*callback)(int, void*),
void *arg);
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(
extern void jobs_terminate();
extern int jobs_start(
void (*start)(int signum, void* arg),
void *arg);
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