projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Cleanup: spaghetti function return path
[lttng-tools.git]
/
src
/
bin
/
lttng-relayd
/
main.c
diff --git
a/src/bin/lttng-relayd/main.c
b/src/bin/lttng-relayd/main.c
index fa5a7db86c393640c15fe9e8b3bf5f652da98111..f7c24b896ee24e54db183928992b9c4f88d494a1 100644
(file)
--- a/
src/bin/lttng-relayd/main.c
+++ b/
src/bin/lttng-relayd/main.c
@@
-18,6
+18,7
@@
*/
#define _GNU_SOURCE
*/
#define _GNU_SOURCE
+#define _LGPL_SOURCE
#include <getopt.h>
#include <grp.h>
#include <limits.h>
#include <getopt.h>
#include <grp.h>
#include <limits.h>
@@
-233,6
+234,11
@@
int set_option(int opt, const char *arg, const char *optname)
break;
case 'g':
tracing_group_name = strdup(arg);
break;
case 'g':
tracing_group_name = strdup(arg);
+ if (tracing_group_name == NULL) {
+ ret = -errno;
+ PERROR("strdup");
+ goto end;
+ }
tracing_group_name_override = 1;
break;
case 'h':
tracing_group_name_override = 1;
break;
case 'h':
@@
-1345,7
+1351,6
@@
int relay_close_stream(struct lttcomm_relayd_hdr *recv_hdr,
stream->last_net_seq_num = be64toh(stream_info.last_net_seq_num);
stream->close_flag = 1;
session->stream_count--;
stream->last_net_seq_num = be64toh(stream_info.last_net_seq_num);
stream->close_flag = 1;
session->stream_count--;
- assert(session->stream_count >= 0);
/* Check if we can close it or else the data will do it. */
try_close_stream(session, stream);
/* Check if we can close it or else the data will do it. */
try_close_stream(session, stream);
@@
-2428,6
+2433,7
@@
void *relay_thread_worker(void *data)
struct lttcomm_relayd_hdr recv_hdr;
struct relay_local_data *relay_ctx = (struct relay_local_data *) data;
struct lttng_ht *sessions_ht = relay_ctx->sessions_ht;
struct lttcomm_relayd_hdr recv_hdr;
struct relay_local_data *relay_ctx = (struct relay_local_data *) data;
struct lttng_ht *sessions_ht = relay_ctx->sessions_ht;
+ struct relay_index *index;
DBG("[thread] Relay worker started");
DBG("[thread] Relay worker started");
@@
-2616,6
+2622,7
@@
restart:
if (revents & LPOLLIN) {
if (conn->type != RELAY_DATA) {
if (revents & LPOLLIN) {
if (conn->type != RELAY_DATA) {
+ rcu_read_unlock();
continue;
}
continue;
}
@@
-2659,6
+2666,14
@@
error:
}
rcu_read_unlock();
error_poll_create:
}
rcu_read_unlock();
error_poll_create:
+ rcu_read_lock();
+ cds_lfht_for_each_entry(indexes_ht->ht, &iter.iter, index,
+ index_n.node) {
+ health_code_update();
+ relay_index_delete(index);
+ relay_index_free_safe(index);
+ }
+ rcu_read_unlock();
lttng_ht_destroy(indexes_ht);
indexes_ht_error:
lttng_ht_destroy(relay_connections_ht);
lttng_ht_destroy(indexes_ht);
indexes_ht_error:
lttng_ht_destroy(relay_connections_ht);
This page took
0.023921 seconds
and
4
git commands to generate.