#include "session.h"
#include "utils.h"
+static int agent_tracing_enabled = -1;
+
/*
* Note that there is not port here. It's set after this URI is parsed so we
* can let the user define a custom one. However, localhost is ALWAYS the
*/
ret = uri_parse(default_reg_uri, &uri);
assert(ret);
- assert(agent_tcp_port);
- uri->port = agent_tcp_port;
+ assert(config.agent_tcp_port);
+ uri->port = config.agent_tcp_port;
sock = lttcomm_alloc_sock_from_uri(uri);
uri_free(uri);
}
DBG("[agent-thread] Listening on TCP port %u and socket %d",
- agent_tcp_port, sock->fd);
+ config.agent_tcp_port, sock->fd);
return sock;
{
assert(sock);
- DBG3("[agent-thread] Destroy TCP socket on port %u", agent_tcp_port);
+ DBG3("[agent-thread] Destroy TCP socket on port %u", config.agent_tcp_port);
/* This will return gracefully if fd is invalid. */
sock->ops->close(sock);
return ret;
}
+bool agent_tracing_is_enabled(void)
+{
+ int enabled;
+
+ enabled = uatomic_read(&agent_tracing_enabled);
+ assert(enabled != -1);
+ return enabled == 1;
+}
+
/*
* This thread manage application notify communication.
*/
}
reg_sock = init_tcp_socket();
+ uatomic_set(&agent_tracing_enabled, !!reg_sock);
+
+ /*
+ * Signal that the agent thread is ready. The command thread
+ * may start to query whether or not agent tracing is enabled.
+ */
+ sessiond_notify_ready();
if (!reg_sock) {
goto error_tcp_socket;
}
}
exit:
+ uatomic_set(&agent_tracing_enabled, 0);
/* Whatever happens, try to delete it and exit. */
(void) lttng_poll_del(&events, reg_sock->fd);
error: