diff options
author | Laurent Bercot <ska-skaware@skarnet.org> | 2021-03-28 01:50:36 +0000 |
---|---|---|
committer | Laurent Bercot <ska-skaware@skarnet.org> | 2021-03-28 01:50:36 +0000 |
commit | e2959c22c7309836d6f5dba2f0db7b293b860ad8 (patch) | |
tree | a26cefd2a36f6682e302bed8840642da0c6c64a8 /src/server/ev.c | |
parent | ba3bcbb86ea0177349bcd021559347248d6ab10a (diff) | |
download | s6-rc-e2959c22c7309836d6f5dba2f0db7b293b860ad8.tar.xz |
A few pieces of the future s6-rcd server
Diffstat (limited to 'src/server/ev.c')
-rw-r--r-- | src/server/ev.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/server/ev.c b/src/server/ev.c new file mode 100644 index 0000000..c201191 --- /dev/null +++ b/src/server/ev.c @@ -0,0 +1,47 @@ +/* ISC license. */ + +#include <skalibs/genqdyn.h> + +#include <s6-rc/event.h> +#include "ev.h" + + +/* Event queue */ + +static genqdyn evq = GENQDYN_INIT(s6rc_event_t, 0, 1) ; /* only clean when it's empty */ + +int ev_enqueue (s6rc_event_t const *ev) +{ + return genqdyn_push(&evq, ev) ; +} + +int ev_pop (s6rc_event_t *ev) +{ + if (!genqdyn_n(&evq)) return 0 ; + *ev = *GENQDYN_PEEK(s6rc_event_t, &evq) ; + return genqdyn_pop(&evq) ; +} + + + /* Event processing (builtins) */ + +void ev_handle (s6rc_event_t const *ev) +{ + switch (ev->type) + { + case S6RC_EVENTTYPE_WANTED_STATE_DOWN : + break ; + case S6RC_EVENTTYPE_WANTED_STATE_UP : + break ; + case S6RC_EVENTTYPE_CURRENT_STATE_DOWN : + break ; + case S6RC_EVENTTYPE_CURRENT_STATE_UP : + break ; + case S6RC_EVENTTYPE_TRANSITION_STOP : + break ; + case S6RC_EVENTTYPE_TRANSITION_START : + break ; + case S6RC_EVENTTYPE_CUSTOM : + break ; + } +} |