relayd: track the live listener thread's epoll fd
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 27 Nov 2019 05:28:51 +0000 (00:28 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 30 Jan 2020 06:55:34 +0000 (01:55 -0500)
Create the live listener threads' epoll fd through the
fd_tracker_util_poll_create() util. This causes the resulting fd
(in epoll mode) to be tracked by the fd tracker.

Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: If93fe5b1cc85d5d3950941edd47910697727ced9

src/bin/lttng-relayd/live.c

index fbc70303106e72bd3aefd8be55d985bbd0a8f229..419a8ebe4816004abc7705e24d1e28a68ee77109 100644 (file)
@@ -436,7 +436,8 @@ int relayd_live_stop(void)
  * Create a poll set with O_CLOEXEC and add the thread quit pipe to the set.
  */
 static
  * Create a poll set with O_CLOEXEC and add the thread quit pipe to the set.
  */
 static
-int create_thread_poll_set(struct lttng_poll_event *events, int size)
+int create_named_thread_poll_set(struct lttng_poll_event *events,
+               int size, const char *name)
 {
        int ret;
 
 {
        int ret;
 
@@ -445,10 +446,8 @@ int create_thread_poll_set(struct lttng_poll_event *events, int size)
                goto error;
        }
 
                goto error;
        }
 
-       ret = lttng_poll_create(events, size, LTTNG_CLOEXEC);
-       if (ret < 0) {
-               goto error;
-       }
+       ret = fd_tracker_util_poll_create(the_fd_tracker,
+                       name, events, 1, LTTNG_CLOEXEC);
 
        /* Add quit pipe */
        ret = lttng_poll_add(events, thread_quit_pipe[0], LPOLLIN | LPOLLERR);
 
        /* Add quit pipe */
        ret = lttng_poll_add(events, thread_quit_pipe[0], LPOLLIN | LPOLLERR);
@@ -462,6 +461,15 @@ error:
        return ret;
 }
 
        return ret;
 }
 
+/*
+ * Create a poll set with O_CLOEXEC and add the thread quit pipe to the set.
+ */
+static
+int create_thread_poll_set(struct lttng_poll_event *events, int size)
+{
+       return create_named_thread_poll_set(events, size, "Unknown epoll");
+}
+
 /*
  * Check if the thread quit pipe was triggered.
  *
 /*
  * Check if the thread quit pipe was triggered.
  *
@@ -542,7 +550,8 @@ void *thread_listener(void *data)
        }
 
        /* Pass 2 as size here for the thread quit pipe and control sockets. */
        }
 
        /* Pass 2 as size here for the thread quit pipe and control sockets. */
-       ret = create_thread_poll_set(&events, 2);
+       ret = create_named_thread_poll_set(&events, 2,
+                       "Live listener thread epoll");
        if (ret < 0) {
                goto error_create_poll;
        }
        if (ret < 0) {
                goto error_create_poll;
        }
@@ -651,7 +660,7 @@ exit:
 error:
 error_poll_add:
 error_testpoint:
 error:
 error_poll_add:
 error_testpoint:
-       lttng_poll_clean(&events);
+       (void) fd_tracker_util_poll_clean(the_fd_tracker, &events);
 error_create_poll:
        if (live_control_sock->fd >= 0) {
                ret = live_control_sock->ops->close(live_control_sock);
 error_create_poll:
        if (live_control_sock->fd >= 0) {
                ret = live_control_sock->ops->close(live_control_sock);
This page took 0.027693 seconds and 5 git commands to generate.