tests: Make test_per_application_leaks more robust
[lttng-tools.git] / src / bin / lttng-sessiond / manage-consumer.cpp
index 702bd5050cb884972ffff0dc1642ae24c96957bc..27a368e7f19d80d7dbaed75ee6c64f3eb61b28ca 100644 (file)
@@ -17,6 +17,7 @@
 #include <common/pipe.hpp>
 #include <common/utils.hpp>
 
+#include <fcntl.h>
 #include <signal.h>
 
 namespace {
@@ -163,8 +164,13 @@ static void *thread_consumer_management(void *data)
 
        DBG2("Receiving code from consumer err_sock");
 
-       /* Getting status code from kconsumerd */
-       ret = lttcomm_recv_unix_sock(sock, &code, sizeof(enum lttcomm_return_code));
+       /* Getting status code from consumerd */
+       {
+               std::int32_t comm_code = 0;
+
+               ret = lttcomm_recv_unix_sock(sock, &comm_code, sizeof(comm_code));
+               code = static_cast<decltype(code)>(comm_code);
+       }
        if (ret <= 0) {
                mark_thread_intialization_as_failed(notifiers);
                goto error;
@@ -303,9 +309,14 @@ static void *thread_consumer_management(void *data)
                                        goto error;
                                }
                                health_code_update();
-                               /* Wait for any kconsumerd error */
-                               ret = lttcomm_recv_unix_sock(
-                                       sock, &code, sizeof(enum lttcomm_return_code));
+                               /* Wait for any consumerd error */
+                               {
+                                       std::int32_t comm_code = 0;
+
+                                       ret = lttcomm_recv_unix_sock(
+                                               sock, &comm_code, sizeof(comm_code));
+                                       code = static_cast<decltype(code)>(comm_code);
+                               }
                                if (ret <= 0) {
                                        ERR("consumer closed the command socket");
                                        goto error;
@@ -453,10 +464,7 @@ bool launch_consumer_management_thread(struct consumer_data *consumer_data)
        }
        wait_until_thread_is_ready(notifiers);
        lttng_thread_put(thread);
-       if (notifiers->initialization_result) {
-               return false;
-       }
-       return true;
+       return notifiers->initialization_result == 0;
 error:
        cleanup_consumer_management_thread(notifiers);
 error_alloc:
This page took 0.025876 seconds and 4 git commands to generate.