Move "hello-static-lib" to doc/examples and add non-automake Makefiles
[lttng-ust.git] / liblttng-ust / lttng-ust-comm.c
index 874adde680dde8c6f848cd74fcd2d5b9eb10394c..86af682b110024c5b1c6f73bb4b34d4ccc29d648 100644 (file)
@@ -178,10 +178,14 @@ static const char *str_timeout;
 static int got_timeout_env;
 
 extern void lttng_ring_buffer_client_overwrite_init(void);
+extern void lttng_ring_buffer_client_overwrite_rt_init(void);
 extern void lttng_ring_buffer_client_discard_init(void);
+extern void lttng_ring_buffer_client_discard_rt_init(void);
 extern void lttng_ring_buffer_metadata_client_init(void);
 extern void lttng_ring_buffer_client_overwrite_exit(void);
+extern void lttng_ring_buffer_client_overwrite_rt_exit(void);
 extern void lttng_ring_buffer_client_discard_exit(void);
+extern void lttng_ring_buffer_client_discard_rt_exit(void);
 extern void lttng_ring_buffer_metadata_client_exit(void);
 
 /*
@@ -393,7 +397,7 @@ int handle_message(struct sock_info *sock_info,
                if (lum->handle == LTTNG_UST_ROOT_HANDLE)
                        ret = -EPERM;
                else
-                       ret = lttng_ust_objd_unref(lum->handle);
+                       ret = lttng_ust_objd_unref(lum->handle, 1);
                break;
        case LTTNG_UST_FILTER:
        {
@@ -467,9 +471,11 @@ int handle_message(struct sock_info *sock_info,
        case LTTNG_UST_CHANNEL:
        {
                void *chan_data;
+               int wakeup_fd;
 
                len = ustcomm_recv_channel_from_sessiond(sock,
-                               &chan_data, lum->u.channel.len);
+                               &chan_data, lum->u.channel.len,
+                               &wakeup_fd);
                switch (len) {
                case 0: /* orderly shutdown */
                        ret = 0;
@@ -494,6 +500,7 @@ int handle_message(struct sock_info *sock_info,
                        }
                }
                args.channel.chan_data = chan_data;
+               args.channel.wakeup_fd = wakeup_fd;
                if (ops->cmd)
                        ret = ops->cmd(lum->handle, lum->cmd,
                                        (unsigned long) &lum->u,
@@ -632,7 +639,7 @@ void cleanup_sock_info(struct sock_info *sock_info, int exiting)
                sock_info->notify_socket = -1;
        }
        if (sock_info->root_handle != -1) {
-               ret = lttng_ust_objd_unref(sock_info->root_handle);
+               ret = lttng_ust_objd_unref(sock_info->root_handle, 1);
                if (ret) {
                        ERR("Error unref root handle");
                }
@@ -1113,7 +1120,10 @@ void __attribute__((constructor)) lttng_ust_init(void)
        init_tracepoint();
        lttng_ring_buffer_metadata_client_init();
        lttng_ring_buffer_client_overwrite_init();
+       lttng_ring_buffer_client_overwrite_rt_init();
        lttng_ring_buffer_client_discard_init();
+       lttng_ring_buffer_client_discard_rt_init();
+       lttng_context_init();
 
        timeout_mode = get_constructor_timeout(&constructor_timeout);
 
@@ -1216,7 +1226,10 @@ void lttng_ust_cleanup(int exiting)
         */
        lttng_ust_abi_exit();
        lttng_ust_events_exit();
+       lttng_context_exit();
+       lttng_ring_buffer_client_discard_rt_exit();
        lttng_ring_buffer_client_discard_exit();
+       lttng_ring_buffer_client_overwrite_rt_exit();
        lttng_ring_buffer_client_overwrite_exit();
        lttng_ring_buffer_metadata_client_exit();
        exit_tracepoint();
This page took 0.024801 seconds and 4 git commands to generate.