*/
#define _GNU_SOURCE
+#define _LGPL_SOURCE
#include <assert.h>
#include <poll.h>
#include <pthread.h>
ret = kernctl_snapshot(infd);
if (ret != 0) {
- perror("Getting sub-buffer snapshot.");
+ PERROR("Getting sub-buffer snapshot.");
ret = -errno;
}
ret = kernctl_snapshot_get_produced(infd, pos);
if (ret != 0) {
- perror("kernctl_snapshot_get_produced");
+ PERROR("kernctl_snapshot_get_produced");
ret = -errno;
}
ret = kernctl_snapshot_get_consumed(infd, pos);
if (ret != 0) {
- perror("kernctl_snapshot_get_consumed");
+ PERROR("kernctl_snapshot_get_consumed");
ret = -errno;
}
switch (channel->output) {
case CONSUMER_CHANNEL_SPLICE:
new_stream->output = LTTNG_EVENT_SPLICE;
+ ret = utils_create_pipe(new_stream->splice_pipe);
+ if (ret < 0) {
+ goto end_nosignal;
+ }
break;
case CONSUMER_CHANNEL_MMAP:
new_stream->output = LTTNG_EVENT_MMAP;
* Send status code to session daemon.
*/
ret = consumer_send_status_msg(sock, ret_code);
- if (ret < 0) {
+ if (ret < 0 || ret_code != LTTCOMM_CONSUMERD_SUCCESS) {
/* Somehow, the session daemon is not responding anymore. */
goto end_nosignal;
}
/* Get the full subbuffer size including padding */
err = kernctl_get_padded_subbuf_size(infd, &len);
if (err != 0) {
- perror("Getting sub-buffer len failed.");
+ PERROR("Getting sub-buffer len failed.");
err = kernctl_put_subbuf(infd);
if (err != 0) {
if (errno == EFAULT) {
- perror("Error in unreserving sub buffer\n");
+ PERROR("Error in unreserving sub buffer\n");
} else if (errno == EIO) {
/* Should never happen with newer LTTng versions */
- perror("Reader has been pushed by the writer, last sub-buffer corrupted.");
+ PERROR("Reader has been pushed by the writer, last sub-buffer corrupted.");
}
ret = -errno;
goto end;
err = kernctl_put_subbuf(infd);
if (err != 0) {
if (errno == EFAULT) {
- perror("Error in unreserving sub buffer\n");
+ PERROR("Error in unreserving sub buffer\n");
} else if (errno == EIO) {
/* Should never happen with newer LTTng versions */
- perror("Reader has been pushed by the writer, last sub-buffer corrupted.");
+ PERROR("Reader has been pushed by the writer, last sub-buffer corrupted.");
}
ret = -errno;
goto end;
/* Get subbuffer size without padding */
err = kernctl_get_subbuf_size(infd, &subbuf_size);
if (err != 0) {
- perror("Getting sub-buffer len failed.");
+ PERROR("Getting sub-buffer len failed.");
err = kernctl_put_subbuf(infd);
if (err != 0) {
if (errno == EFAULT) {
- perror("Error in unreserving sub buffer\n");
+ PERROR("Error in unreserving sub buffer\n");
} else if (errno == EIO) {
/* Should never happen with newer LTTng versions */
- perror("Reader has been pushed by the writer, last sub-buffer corrupted.");
+ PERROR("Reader has been pushed by the writer, last sub-buffer corrupted.");
}
ret = -errno;
goto end;
err = kernctl_put_next_subbuf(infd);
if (err != 0) {
if (errno == EFAULT) {
- perror("Error in unreserving sub buffer\n");
+ PERROR("Error in unreserving sub buffer\n");
} else if (errno == EIO) {
/* Should never happen with newer LTTng versions */
- perror("Reader has been pushed by the writer, last sub-buffer corrupted.");
+ PERROR("Reader has been pushed by the writer, last sub-buffer corrupted.");
}
ret = -errno;
goto end;