X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=src%2Fcommon%2Fconsumer%2Fconsumer.h;h=17e5b55a6c1fb14cec255411eb19ef9259bb10b2;hb=4c5691ba0756f7c0f4a604c814ee729e967da8e0;hp=7375373c76113ab791a5e06027e8f0599a1494f6;hpb=1bf914e075cf9c8b43df924c1a8d6c62f3a8587c;p=lttng-tools.git diff --git a/src/common/consumer/consumer.h b/src/common/consumer/consumer.h index 7375373c7..17e5b55a6 100644 --- a/src/common/consumer/consumer.h +++ b/src/common/consumer/consumer.h @@ -429,7 +429,7 @@ struct consumer_relayd_sock_pair { /* Network sequence number. */ uint64_t net_seq_idx; /* Number of stream associated with this relayd */ - unsigned int refcount; + int refcount; /* * This flag indicates whether or not we should destroy this object. The @@ -463,6 +463,7 @@ struct consumer_relayd_sock_pair { /* Session id on both sides for the sockets. */ uint64_t relayd_session_id; uint64_t sessiond_session_id; + struct lttng_consumer_local_data *ctx; }; /* @@ -604,6 +605,12 @@ struct lttng_consumer_global_data { struct lttng_ht *stream_per_chan_id_ht; }; +/* + * Set to nonzero when the consumer is exiting. Updated by signal + * handler and thread exit, read by threads. + */ +extern int consumer_quit; + /* Flag used to temporarily pause data consumption from testpoints. */ extern int data_consumption_paused; @@ -726,7 +733,7 @@ int lttng_consumer_recv_cmd(struct lttng_consumer_local_data *ctx, ssize_t lttng_consumer_read_subbuffer(struct lttng_consumer_stream *stream, struct lttng_consumer_local_data *ctx); int lttng_consumer_on_recv_stream(struct lttng_consumer_stream *stream); -int consumer_add_relayd_socket(uint64_t net_seq_idx, int sock_type, +void consumer_add_relayd_socket(uint64_t net_seq_idx, int sock_type, struct lttng_consumer_local_data *ctx, int sock, struct pollfd *consumer_sockpoll, struct lttcomm_relayd_sock *relayd_sock, uint64_t sessiond_id, uint64_t relayd_session_id); @@ -747,5 +754,6 @@ void consumer_del_stream_for_data(struct lttng_consumer_stream *stream); int consumer_add_metadata_stream(struct lttng_consumer_stream *stream); void consumer_del_stream_for_metadata(struct lttng_consumer_stream *stream); int consumer_create_index_file(struct lttng_consumer_stream *stream); +void lttng_consumer_cleanup_relayd(struct consumer_relayd_sock_pair *relayd); #endif /* LIB_CONSUMER_H */