Session create/release tested.
[lttng-ust.git] / libust / ltt-events.c
index ece959b3e88c8237f0bf542fb50cf7f57871b5e6..c99b6689200b3c8775569d8bafe05a1d1d088072 100644 (file)
@@ -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
@@ -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.03485 seconds and 4 git commands to generate.