Session create/release tested.
[lttng-ust.git] / libust / ltt-events.c
index e4ffc69a32474b9fdd45331e893770ee399ba5b7..c99b6689200b3c8775569d8bafe05a1d1d088072 100644 (file)
@@ -21,7 +21,7 @@
 #include <sys/shm.h>
 #include <sys/ipc.h>
 #include <ust/lttng-events.h>
-#include "usterr_signal_safe.h"
+#include <ust/usterr-signal-safe.h>
 #include "ust/core.h"
 #include "ltt-tracer.h"
 #include "ust/wait.h"
@@ -50,10 +50,10 @@ struct ltt_session *ltt_session_create(void)
 {
        struct ltt_session *session;
 
-       pthread_mutex_lock(&sessions_mutex);
        session = zmalloc(sizeof(struct ltt_session));
        if (!session)
                return NULL;
+       pthread_mutex_lock(&sessions_mutex);
        CDS_INIT_LIST_HEAD(&session->chan);
        CDS_INIT_LIST_HEAD(&session->events);
        uuid_generate(session->uuid);
@@ -221,10 +221,9 @@ struct ltt_channel *ltt_channel_create(struct ltt_session *session,
         * headers. Therefore the "chan" information used as input
         * should be already accessible.
         */
-       chan->handle = transport->ops.channel_create("[lttng]", chan, buf_addr,
+       transport->ops.channel_create("[lttng]", chan, buf_addr,
                        subbuf_size, num_subbuf, switch_timer_interval,
                        read_timer_interval);
-       chan->chan = shmp(chan->handle->header->chan);
        if (!chan->chan)
                goto create_error;
        chan->enabled = 1;
@@ -248,7 +247,7 @@ active:
 static
 void _ltt_channel_destroy(struct ltt_channel *chan)
 {
-       chan->ops->channel_destroy(chan->handle);
+       chan->ops->channel_destroy(chan);
        cds_list_del(&chan->list);
        lttng_destroy_context(chan->ctx);
        free(chan);
@@ -387,10 +386,10 @@ int lttng_metadata_printf(struct ltt_session *session,
 
        for (pos = 0; pos < len; pos += reserve_len) {
                reserve_len = min_t(size_t,
-                               chan->ops->packet_avail_size(chan->chan),
+                               chan->ops->packet_avail_size(chan->chan, chan->handle),
                                len - pos);
                lib_ring_buffer_ctx_init(&ctx, chan->chan, NULL, reserve_len,
-                                        sizeof(char), -1);
+                                        sizeof(char), -1, chan->handle);
                /*
                 * We don't care about metadata buffer's records lost
                 * count, because we always retry here. Report error if
@@ -753,8 +752,8 @@ int _ltt_event_header_declare(struct ltt_session *session)
        "               } extended;\n"
        "       } v;\n"
        "} align(%u);\n\n",
-       ltt_alignof(uint32_t) * CHAR_BIT,
-       ltt_alignof(uint16_t) * CHAR_BIT
+       lttng_alignof(uint32_t) * CHAR_BIT,
+       lttng_alignof(uint16_t) * CHAR_BIT
        );
 }
 
@@ -805,10 +804,10 @@ int _ltt_session_metadata_statedump(struct ltt_session *session)
                "               uint32_t stream_id;\n"
                "       };\n"
                "};\n\n",
-               ltt_alignof(uint8_t) * CHAR_BIT,
-               ltt_alignof(uint16_t) * CHAR_BIT,
-               ltt_alignof(uint32_t) * CHAR_BIT,
-               ltt_alignof(uint64_t) * CHAR_BIT,
+               lttng_alignof(uint8_t) * CHAR_BIT,
+               lttng_alignof(uint16_t) * CHAR_BIT,
+               lttng_alignof(uint32_t) * CHAR_BIT,
+               lttng_alignof(uint64_t) * CHAR_BIT,
                CTF_VERSION_MAJOR,
                CTF_VERSION_MINOR,
                uuid_s,
@@ -871,8 +870,7 @@ void ltt_transport_unregister(struct ltt_transport *transport)
        pthread_mutex_unlock(&sessions_mutex);
 }
 
-static
-void __attribute__((destructor)) ltt_events_exit(void)
+void ltt_events_exit(void)
 {
        struct ltt_session *session, *tmpsession;
 
This page took 0.025435 seconds and 4 git commands to generate.