jobs: Remove conditionnal REMOVE_SYSTEMD_EVENT 51/19651/1
authorJose Bollo <jose.bollo@iot.bzh>
Wed, 16 Jan 2019 16:23:40 +0000 (17:23 +0100)
committerJosé Bollo <jose.bollo@iot.bzh>
Wed, 16 Jan 2019 21:33:23 +0000 (22:33 +0100)
The removal of the systemd event loop will be made
in later changes.

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

index 8e3358d..386e1e4 100644 (file)
@@ -17,8 +17,6 @@
 
 #include "fdev.h"
 
-#if !defined(REMOVE_SYSTEMD_EVENT)
-
 #include "afb-systemd.h"
 #include "fdev-systemd.h"
 
@@ -26,16 +24,3 @@ struct fdev *afb_fdev_create(int fd)
 {
        return fdev_systemd_create(afb_systemd_get_event_loop(), fd);
 }
-
-#else
-
-#include "jobs.h"
-#include "fdev-epoll.h"
-
-struct fdev *afb_fdev_create(int fd)
-{
-       return fdev_epoll_add(jobs_get_fdev_epoll(), fd);
-}
-
-#endif
-
index f5c9dde..4a88c30 100644 (file)
 #include "sig-monitor.h"
 #include "verbose.h"
 
-#if defined(REMOVE_SYSTEMD_EVENT)
-#include "fdev-epoll.h"
-#endif
-
 #define EVENT_TIMEOUT_TOP      ((uint64_t)-1)
 #define EVENT_TIMEOUT_CHILD    ((uint64_t)10000)
 
@@ -131,11 +127,6 @@ static struct job *free_jobs;
 /* event loop */
 static struct evloop evloop;
 
-#if defined(REMOVE_SYSTEMD_EVENT)
-static struct fdev_epoll *fdevepoll;
-static int waitevt;
-#endif
-
 /**
  * Create a new job with the given parameters
  * @param group    the group of the job
@@ -272,23 +263,6 @@ 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
- */
-static struct fdev_epoll *get_fdevepoll()
-{
-       struct fdev_epoll *result;
-
-       result = fdevepoll;
-       if (!result)
-               result = fdevepoll = fdev_epoll_create();
-
-       return result;
-}
-#endif
-
 /**
  * Monitored normal callback for events.
  * This function is called by the monitor
@@ -417,23 +391,6 @@ static void evloop_acquire()
        }
 }
 
-#if defined(REMOVE_SYSTEMD_EVENT)
-/**
- * Monitored normal loop for waiting events.
- * @param signum 0 on normal flow or the number
- *               of the signal that interrupted the normal
- *               flow
- * @param arg     the events to run
- */
-static void monitored_wait_and_dispatch(int signum, void *arg)
-{
-       struct fdev_epoll *fdev_epoll = arg;
-       if (!signum) {
-               fdev_epoll_wait_and_dispatch(fdev_epoll, -1);
-       }
-}
-#endif
-
 /**
  * Enter the thread
  * @param me the description of the thread to enter
@@ -501,7 +458,6 @@ static void thread_run_internal(volatile struct thread *me)
 
                        /* release the run job */
                        job_release(job);
-#if !defined(REMOVE_SYSTEMD_EVENT)
                /* no job, check event loop wait */
                } else if (evloop_get()) {
                        if (evloop.state != 0) {
@@ -524,24 +480,6 @@ static void thread_run_internal(volatile struct thread *me)
                        pthread_cond_wait(&cond, &mutex);
                        me->waits = 0;
                        running++;
-#else
-               } else if (waitevt) {
-                       /* no job and not events */
-                       running--;
-                       if (!running)
-                               ERROR("Entering job deep sleep! Check your bindings.");
-                       me->waits = 1;
-                       pthread_cond_wait(&cond, &mutex);
-                       me->waits = 0;
-                       running++;
-               } else {
-                       /* wait for events */
-                       waitevt = 1;
-                       pthread_mutex_unlock(&mutex);
-                       sig_monitor(0, monitored_wait_and_dispatch, get_fdevepoll());
-                       pthread_mutex_lock(&mutex);
-                       waitevt = 0;
-#endif
                }
        }
        /* cleanup */
@@ -833,15 +771,6 @@ static int on_evloop_efd(sd_event_source *s, int fd, uint32_t revents, void *use
        return 1;
 }
 
-/* temporary hack */
-#if !defined(REMOVE_SYSTEMD_EVENT)
-__attribute__((unused))
-#endif
-static void evloop_callback(void *arg, uint32_t event, struct fdev *fdev)
-{
-       sig_monitor(0, evloop_run, arg);
-}
-
 /**
  * Gets a sd_event item for the current thread.
  * @return a sd_event or NULL in case of error
@@ -870,7 +799,6 @@ static struct sd_event *get_sd_event_locked()
                rc = sd_event_add_io(evloop.sdev, NULL, evloop.efd, EPOLLIN, on_evloop_efd, NULL);
                if (rc < 0) {
                        ERROR("can't register eventfd");
-#if !defined(REMOVE_SYSTEMD_EVENT)
                        sd_event_unref(evloop.sdev);
                        evloop.sdev = NULL;
 error2:
@@ -878,25 +806,6 @@ error2:
 error1:
                        return NULL;
                }
-#else
-                       goto error3;
-               }
-               /* handle the event loop */
-               evloop.fdev = fdev_epoll_add(get_fdevepoll(), sd_event_get_fd(evloop.sdev));
-               if (!evloop.fdev) {
-                       ERROR("can't create fdev");
-error3:
-                       sd_event_unref(evloop.sdev);
-error2:
-                       close(evloop.efd);
-error1:
-                       memset(&evloop, 0, sizeof evloop);
-                       return NULL;
-               }
-               fdev_set_autoclose(evloop.fdev, 0);
-               fdev_set_events(evloop.fdev, EPOLLIN);
-               fdev_set_callback(evloop.fdev, evloop_callback, NULL);
-#endif
        }
 
        /* acquire the event loop */
@@ -945,23 +854,6 @@ 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
- */
-struct fdev_epoll *jobs_get_fdev_epoll()
-{
-       struct fdev_epoll *result;
-
-       pthread_mutex_lock(&mutex);
-       result = get_fdevepoll();
-       pthread_mutex_unlock(&mutex);
-
-       return result;
-}
-#endif
-
 /**
  * Enter the jobs processing loop.
  * @param allowed_count Maximum count of thread for jobs including this one
index 58adc1c..1a91968 100644 (file)
@@ -48,10 +48,5 @@ 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