Cleanup: use CMM accessors for consumer_quit variable
[lttng-tools.git] / src / common / kernel-consumer / kernel-consumer.c
index c7c1413104b4a0dec3b34e63fc8e1efbf6b8242e..8d00a0d46bd0c6edb2ab991b21bde1af448d70b0 100644 (file)
@@ -48,7 +48,6 @@
 
 extern struct lttng_consumer_global_data consumer_data;
 extern int consumer_poll_timeout;
-extern volatile int consumer_quit;
 
 /*
  * Take a snapshot for a specific fd
@@ -199,9 +198,20 @@ int lttng_kconsumer_snapshot_channel(uint64_t key, char *path,
                        channel->streams_sent_to_relayd = true;
                }
 
-               ret = kernctl_buffer_flush(stream->wait_fd);
+               ret = kernctl_buffer_flush_empty(stream->wait_fd);
                if (ret < 0) {
-                       ERR("Failed to flush kernel stream");
+                       /*
+                        * Doing a buffer flush which does not take into
+                        * account empty packets. This is not perfect
+                        * for stream intersection, but required as a
+                        * fall-back when "flush_empty" is not
+                        * implemented by lttng-modules.
+                        */
+                       ret = kernctl_buffer_flush(stream->wait_fd);
+                       if (ret < 0) {
+                               ERR("Failed to flush kernel stream");
+                               goto end_unlock;
+                       }
                        goto end_unlock;
                }
 
This page took 0.023796 seconds and 4 git commands to generate.