Implement ustctl_unmap_channel()
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 20 Oct 2011 18:45:59 +0000 (14:45 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 20 Oct 2011 18:45:59 +0000 (14:45 -0400)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
include/ust/lttng-ust-ctl.h
libustctl/ustctl.c

index 96d627c3838d4c3dc805e4059dd33ab90101e571..58906a57626f1fb29b56b88edcfdf7f0ef5bc147 100644 (file)
@@ -71,7 +71,6 @@ struct lttng_ust_calibrate;
 int ustctl_calibrate(int sock, struct lttng_ust_calibrate *calibrate);
 
 /* TODO: object_data send/recv between sessiond and consumer */
-/* TODO: release shm_handle */
 
 /*
  * Map channel shm_handle and add streams. Typically performed by the
@@ -80,6 +79,11 @@ int ustctl_calibrate(int sock, struct lttng_ust_calibrate *calibrate);
 struct shm_handle *ustctl_map_channel(struct object_data *chan_data);
 int ustctl_add_stream(struct shm_handle *shm_handle,
                struct object_data *stream_data);
+/*
+ * Note: the object_data from which the shm_handle is derived can only
+ * be released after unmapping the handle.
+ */
+void ustctl_unmap_channel(struct shm_handle *shm_handle);
 
 /* Buffer operations */
 
index 3d886d3305c569f7df4092ae90ec076a932e0695..581de965c573ad2610e53692786cda5b976b1f34 100644 (file)
@@ -444,6 +444,14 @@ int ustctl_add_stream(struct shm_handle *handle,
        return 0;
 }
 
+void ustctl_unmap_channel(struct shm_handle *handle)
+{
+       struct channel *chan;
+
+       chan = shmp(handle, handle->chan);
+       channel_destroy(chan, handle, 1);
+}
+
 /* For mmap mode, readable without "get" operation */
 
 /* returns the length to mmap. */
This page took 0.024983 seconds and 4 git commands to generate.