Fix: baddr deadlock with lttng-ust destructor
[lttng-ust.git] / liblttng-ust / lttng-ring-buffer-client.h
index 46717135cd4cdf9536f3ff74a4cd4252a8c7e849..87d1a8cdb3fe98fca98dcc051e4ab591e65a8269 100644 (file)
@@ -389,19 +389,7 @@ static void client_buffer_finalize(struct lttng_ust_lib_ring_buffer *buf, void *
 static struct packet_header *client_packet_header(struct lttng_ust_lib_ring_buffer *buf,
                struct lttng_ust_shm_handle *handle)
 {
-       struct channel *chan = shmp(handle, buf->backend.chan);
-       struct lttng_channel *lttng_chan = channel_get_private(chan);
-       unsigned long sb_index;
-       struct lttng_ust_lib_ring_buffer_backend *bufb;
-       struct packet_header *header;
-
-       bufb = &buf->backend;
-       sb_index = subbuffer_id_get_index(&lttng_chan->chan->backend.config,
-                       bufb->buf_rsb.id);
-       header = lib_ring_buffer_offset_address(bufb,
-                       sb_index * lttng_chan->chan->backend.subbuf_size,
-                       handle);
-       return header;
+       return lib_ring_buffer_read_offset_address(&buf->backend, 0, handle);
 }
 
 static int client_timestamp_begin(struct lttng_ust_lib_ring_buffer *buf,
@@ -470,6 +458,18 @@ static int client_stream_id(struct lttng_ust_lib_ring_buffer *buf,
        return 0;
 }
 
+static int client_current_timestamp(struct lttng_ust_lib_ring_buffer *buf,
+               struct lttng_ust_shm_handle *handle,
+               uint64_t *ts)
+{
+       struct channel *chan;
+
+       chan = shmp(handle, handle->chan);
+       *ts = client_ring_buffer_clock_read(chan);
+
+       return 0;
+}
+
 static const
 struct lttng_ust_client_lib_ring_buffer_client_cb client_cb = {
        .parent = {
@@ -487,6 +487,7 @@ struct lttng_ust_client_lib_ring_buffer_client_cb client_cb = {
        .content_size = client_content_size,
        .packet_size = client_packet_size,
        .stream_id = client_stream_id,
+       .current_timestamp = client_current_timestamp,
 };
 
 static const struct lttng_ust_lib_ring_buffer_config client_config = {
This page took 0.023115 seconds and 4 git commands to generate.