summaryrefslogtreecommitdiff
path: root/src/server/ev.c
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2021-03-28 01:50:36 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2021-03-28 01:50:36 +0000
commite2959c22c7309836d6f5dba2f0db7b293b860ad8 (patch)
treea26cefd2a36f6682e302bed8840642da0c6c64a8 /src/server/ev.c
parentba3bcbb86ea0177349bcd021559347248d6ab10a (diff)
downloads6-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.c47
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 ;
+ }
+}