Standardize quit pipes behavior
[lttng-tools.git] / src / bin / lttng-consumerd / health-consumerd.cpp
index ec30af5ddc1f1fd5517365bd94622da89278c17c..f8be972c595986fae6c4aca3b3363a59dc39dcf3 100644 (file)
 #include <ulimit.h>
 #include <inttypes.h>
 
-#include <common/defaults.h>
-#include <common/common.h>
-#include <common/consumer/consumer.h>
-#include <common/consumer/consumer-timer.h>
-#include <common/compat/poll.h>
-#include <common/sessiond-comm/sessiond-comm.h>
-#include <common/utils.h>
+#include <common/defaults.hpp>
+#include <common/common.hpp>
+#include <common/consumer/consumer.hpp>
+#include <common/consumer/consumer-timer.hpp>
+#include <common/compat/poll.hpp>
+#include <common/sessiond-comm/sessiond-comm.hpp>
+#include <common/utils.hpp>
 
-#include "lttng-consumerd.h"
-#include "health-consumerd.h"
+#include "lttng-consumerd.hpp"
+#include "health-consumerd.hpp"
 
 /* Global health check unix path */
 static char health_unix_sock_path[PATH_MAX];
 
-int health_quit_pipe[2];
-
-/*
- * Check if the thread quit pipe was triggered.
- *
- * Return 1 if it was triggered else 0;
- */
-static
-int check_health_quit_pipe(int fd, uint32_t events)
-{
-       if (fd == health_quit_pipe[0] && (events & LPOLLIN)) {
-               return 1;
-       }
-
-       return 0;
-}
+int health_quit_pipe[2] = {-1, -1};
 
 /*
  * Send data on a unix socket using the liblttsessiondcomm API.
@@ -144,10 +129,10 @@ end:
 /*
  * Thread managing health check socket.
  */
-void *thread_manage_health(void *data)
+void *thread_manage_health_consumerd(void *data __attribute__((unused)))
 {
-       int sock = -1, new_sock = -1, ret, i, pollfd, err = -1;
-       uint32_t revents, nb_fd;
+       int sock = -1, new_sock = -1, ret, i, err = -1;
+       uint32_t nb_fd;
        struct lttng_poll_event events;
        struct health_comm_msg msg;
        struct health_comm_reply reply;
@@ -252,12 +237,12 @@ restart:
 
                for (i = 0; i < nb_fd; i++) {
                        /* Fetch once the poll data */
-                       revents = LTTNG_POLL_GETEV(&events, i);
-                       pollfd = LTTNG_POLL_GETFD(&events, i);
+                       const auto revents = LTTNG_POLL_GETEV(&events, i);
+                       const auto pollfd = LTTNG_POLL_GETFD(&events, i);
 
-                       /* Thread quit pipe has been closed. Killing thread. */
-                       ret = check_health_quit_pipe(pollfd, revents);
-                       if (ret) {
+                       /* Activity on health quit pipe, exiting. */
+                       if (pollfd == health_quit_pipe[0]) {
+                               DBG("Activity on health quit pipe");
                                err = 0;
                                goto exit;
                        }
This page took 0.025925 seconds and 4 git commands to generate.