]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
event: add API for requiring an event loop impl to be registered
authorDaniel P. Berrangé <berrange@redhat.com>
Thu, 23 May 2019 10:51:48 +0000 (11:51 +0100)
committerDaniel P. Berrangé <berrange@redhat.com>
Wed, 18 Dec 2019 14:04:59 +0000 (14:04 +0000)
Reviewed-by: Cole Robinson <crobinso@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
po/POTFILES.in
src/util/virevent.c
src/util/virevent.h

index 7a791121e3fa66342b0b7651ad4c34a12b11e50d..c26ac9497de3e618e5564f88599f0043f5c1e92c 100644 (file)
 @SRCDIR@/src/util/virdnsmasq.c
 @SRCDIR@/src/util/virerror.c
 @SRCDIR@/src/util/virerror.h
+@SRCDIR@/src/util/virevent.c
 @SRCDIR@/src/util/vireventpoll.c
 @SRCDIR@/src/util/virfcp.c
 @SRCDIR@/src/util/virfdstream.c
index 3cac9f9472950497cfad1825c49ca3a22006e343..f6c797724e2e7db5de707458e6172ae939145542 100644 (file)
@@ -26,6 +26,7 @@
 #include "virlog.h"
 #include "virerror.h"
 
+#define VIR_FROM_THIS VIR_FROM_EVENT
 
 VIR_LOG_INIT("util.event");
 
@@ -251,6 +252,27 @@ void virEventRegisterImpl(virEventAddHandleFunc addHandle,
     removeTimeoutImpl = removeTimeout;
 }
 
+
+/**
+ * virEventRequireImpl:
+ *
+ * Require that there is an event loop implementation
+ * registered.
+ *
+ * Returns: -1 if no event loop is registered, 0 otherwise
+ */
+int virEventRequireImpl(void)
+{
+    if (!addHandleImpl || !addTimeoutImpl) {
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                       _("An event loop implementation must be registered"));
+        return -1;
+    }
+
+    return 0;
+}
+
+
 /**
  * virEventRegisterDefaultImpl:
  *
@@ -276,6 +298,8 @@ int virEventRegisterDefaultImpl(void)
 {
     VIR_DEBUG("registering default event implementation");
 
+    virInitialize();
+
     virResetLastError();
 
     if (virEventPollInit() < 0) {
index 0b4f7d2b1b20b7ff67d93ce6974c831afb06c5a3..6c8fdcbac45db793add75360dfdaa8bfe7273316 100644 (file)
@@ -21,3 +21,5 @@
 
 #pragma once
 #include "internal.h"
+
+int virEventRequireImpl(void);