Fix: create/destroy a splice_pipe per stream
authorJulien Desfossez <jdesfossez@efficios.com>
Wed, 12 Nov 2014 23:36:17 +0000 (18:36 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 17 Nov 2014 18:26:31 +0000 (13:26 -0500)
commita2361a610dc8201cc8e165a70682b2f6dc3e0aee
treeb2d214a4acfa8b6298a6d89018a09d954c07baf1
parentbe184a0fd1ecf5c5405b94e74920bf975dc6d396
Fix: create/destroy a splice_pipe per stream

We had a per-thread splice_pipe (one for data and one for metadata), but
in case of error, we would end up filling the write side of the pipe and
never emptying it. This could lead to leaking data from one session to
the other, but also to stall the consumer trying to splice into a full
pipe.

Now we create a splice_pipe per-stream, so it is destroyed when the
session is destroyed.

Fixes: #726
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/common/consumer-stream.c
src/common/consumer.c
src/common/consumer.h
src/common/kernel-consumer/kernel-consumer.c
This page took 0.026585 seconds and 5 git commands to generate.