Tests: event notifier error counters
[lttng-tools.git] / src / bin / lttng-sessiond / notification-thread.c
index dd1dc3e8fe50753cfe7ac10978a6f6898df25dd3..5801682962e9add2c57d83c30a8fad3a210201e6 100644 (file)
@@ -27,6 +27,7 @@
 #include "lttng-sessiond.h"
 #include "health-sessiond.h"
 #include "thread.h"
+#include "testpoint.h"
 
 #include "kernel.h"
 #include <common/kernel-ctl/kernel-ctl.h>
@@ -35,6 +36,8 @@
 #include <urcu/list.h>
 #include <urcu/rculfhash.h>
 
+
+int notifier_consumption_paused;
 /*
  * Destroy the thread data previously created by the init function.
  */
@@ -574,6 +577,17 @@ static int handle_event_notification_pipe(int event_source_fd,
                goto end;
        }
 
+       if (testpoint(sessiond_handle_notifier_event_pipe)) {
+               ret = 0;
+               goto end;
+       }
+
+       if (caa_unlikely(notifier_consumption_paused)) {
+               DBG("Event notifier notification consumption paused, sleeping...");
+               sleep(1);
+               goto end;
+       }
+
        ret = handle_notification_thread_event_notification(
                        state, event_source_fd, domain);
        if (ret) {
@@ -582,6 +596,7 @@ static int handle_event_notification_pipe(int event_source_fd,
                ret = -1;
                goto end;
        }
+
 end:
        return ret;
 }
@@ -640,6 +655,10 @@ void *thread_notification(void *data)
                goto end;
        }
 
+       if (testpoint(sessiond_thread_notification)) {
+               goto end;
+       }
+
        while (true) {
                int fd_count, i;
 
This page took 0.02405 seconds and 4 git commands to generate.