fix destruction to free all memory
[ust.git] / libust / tracectl.c
index 57218a6bd62765b217a27338104b1cbb88a21061..3f2ee38cdb7357f0bc5b94dc093536ca87acb819 100644 (file)
@@ -17,6 +17,7 @@
 
 #define _GNU_SOURCE
 #include <stdio.h>
+#include <stdlib.h>
 #include <stdint.h>
 #include <signal.h>
 #include <sys/types.h>
@@ -26,6 +27,7 @@
 #include <fcntl.h>
 #include <poll.h>
 #include <regex.h>
+#include <urcu/uatomic_arch.h>
 
 #include <ust/marker.h>
 #include <ust/tracectl.h>
@@ -684,7 +686,7 @@ static int do_cmd_get_subbuffer(const char *recvbuf, struct ustcomm_source *src)
                        /* Being here is the proof the daemon has mapped the buffer in its
                         * memory. We may now decrement buffers_to_export.
                         */
-                       if(atomic_long_read(&buf->consumed) == 0) {
+                       if(uatomic_read(&buf->consumed) == 0) {
                                DBG("decrementing buffers_to_export");
                                buffers_to_export--;
                        }
@@ -1409,7 +1411,7 @@ static void __attribute__((destructor)) keepalive()
 
        destroy_traces();
 
-       ustcomm_fini_app(&ustcomm_app);
+       ustcomm_fini_app(&ustcomm_app, 0);
 }
 
 void ust_potential_exec(void)
@@ -1457,7 +1459,8 @@ static void ust_fork(void)
                list_del(&bc->list);
        }
 
-       ustcomm_free_app(&ustcomm_app);
+       /* free app, keeping socket file */
+       ustcomm_fini_app(&ustcomm_app, 1);
 
        buffers_to_export = 0;
        have_listener = 0;
This page took 0.023358 seconds and 4 git commands to generate.