projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Health check: implement health check query in sessiond and consumerd
[lttng-tools.git]
/
src
/
bin
/
lttng-relayd
/
live.c
diff --git
a/src/bin/lttng-relayd/live.c
b/src/bin/lttng-relayd/live.c
index 2f32c2537503f5ab4f04145bdefa662bf2b49500..d09c2f13ea39af1f0971dcf5aed37273c6503e55 100644
(file)
--- a/
src/bin/lttng-relayd/live.c
+++ b/
src/bin/lttng-relayd/live.c
@@
-96,8
+96,6
@@
void cleanup(void)
{
DBG("Cleaning up");
{
DBG("Cleaning up");
- /* Close thread quit pipes */
- utils_close_pipe(live_thread_quit_pipe);
free(live_uri);
}
free(live_uri);
}
@@
-139,21
+137,6
@@
void stop_threads(void)
futex_nto1_wake(&viewer_cmd_queue.futex);
}
futex_nto1_wake(&viewer_cmd_queue.futex);
}
-/*
- * Init thread quit pipe.
- *
- * Return -1 on error or 0 if all pipes are created.
- */
-static
-int init_thread_quit_pipe(void)
-{
- int ret;
-
- ret = utils_create_pipe_cloexec(live_thread_quit_pipe);
-
- return ret;
-}
-
/*
* Create a poll set with O_CLOEXEC and add the thread quit pipe to the set.
*/
/*
* Create a poll set with O_CLOEXEC and add the thread quit pipe to the set.
*/
@@
-689,7
+672,7
@@
int viewer_attach_session(struct relay_command *cmd,
}
session = caa_container_of(node, struct relay_session, session_n);
}
session = caa_container_of(node, struct relay_session, session_n);
- if (cmd->session
== session
) {
+ if (cmd->session
_id == session->id
) {
/* Same viewer already attached, just send the stream list. */
send_streams = 1;
response.status = htobe32(VIEWER_ATTACH_OK);
/* Same viewer already attached, just send the stream list. */
send_streams = 1;
response.status = htobe32(VIEWER_ATTACH_OK);
@@
-705,6
+688,7
@@
int viewer_attach_session(struct relay_command *cmd,
session->viewer_attached++;
send_streams = 1;
response.status = htobe32(VIEWER_ATTACH_OK);
session->viewer_attached++;
send_streams = 1;
response.status = htobe32(VIEWER_ATTACH_OK);
+ cmd->session_id = session->id;
cmd->session = session;
}
cmd->session = session;
}
@@
-1433,15
+1417,13
@@
void deferred_free_viewer_stream(struct rcu_head *head)
}
static
}
static
-void viewer_del_streams(
struct relay_session *session
)
+void viewer_del_streams(
uint64_t session_id
)
{
int ret;
struct relay_viewer_stream *stream;
struct lttng_ht_node_u64 *node;
struct lttng_ht_iter iter;
{
int ret;
struct relay_viewer_stream *stream;
struct lttng_ht_node_u64 *node;
struct lttng_ht_iter iter;
- assert(session);
-
rcu_read_lock();
cds_lfht_for_each_entry(viewer_streams_ht->ht, &iter.iter, node, node) {
node = lttng_ht_iter_get_node_u64(&iter);
rcu_read_lock();
cds_lfht_for_each_entry(viewer_streams_ht->ht, &iter.iter, node, node) {
node = lttng_ht_iter_get_node_u64(&iter);
@@
-1450,7
+1432,7
@@
void viewer_del_streams(struct relay_session *session)
}
stream = caa_container_of(node, struct relay_viewer_stream, stream_n);
}
stream = caa_container_of(node, struct relay_viewer_stream, stream_n);
- if (stream->session_id != session
->
id) {
+ if (stream->session_id != session
_
id) {
continue;
}
continue;
}
@@
-1494,9
+1476,7
@@
void del_connection(struct lttng_ht *relay_connections_ht,
ret = lttng_ht_del(relay_connections_ht, iter);
assert(!ret);
ret = lttng_ht_del(relay_connections_ht, iter);
assert(!ret);
- if (relay_connection->session) {
- viewer_del_streams(relay_connection->session);
- }
+ viewer_del_streams(relay_connection->session_id);
call_rcu(&relay_connection->rcu_node, deferred_free_connection);
}
call_rcu(&relay_connection->rcu_node, deferred_free_connection);
}
@@
-1601,7
+1581,6
@@
restart:
sock_n);
if (revents & (LPOLLERR)) {
sock_n);
if (revents & (LPOLLERR)) {
- ERR("VIEWER POLL ERROR");
cleanup_poll_connection(&events, pollfd);
del_connection(relay_connections_ht, &iter,
relay_connection);
cleanup_poll_connection(&events, pollfd);
del_connection(relay_connections_ht, &iter,
relay_connection);
@@
-1723,7
+1702,7
@@
error:
* main
*/
int live_start_threads(struct lttng_uri *uri,
* main
*/
int live_start_threads(struct lttng_uri *uri,
- struct relay_local_data *relay_ctx)
+ struct relay_local_data *relay_ctx
, int quit_pipe[2]
)
{
int ret = 0;
void *status;
{
int ret = 0;
void *status;
@@
-1732,10
+1711,8
@@
int live_start_threads(struct lttng_uri *uri,
assert(uri);
live_uri = uri;
assert(uri);
live_uri = uri;
- /* Create thread quit pipe */
- if ((ret = init_thread_quit_pipe()) < 0) {
- goto error;
- }
+ live_thread_quit_pipe[0] = quit_pipe[0];
+ live_thread_quit_pipe[1] = quit_pipe[1];
/* Check if daemon is UID = 0 */
is_root = !getuid();
/* Check if daemon is UID = 0 */
is_root = !getuid();
This page took
0.02606 seconds
and
4
git commands to generate.