summaryrefslogtreecommitdiff
path: root/libpipe
diff options
context:
space:
mode:
Diffstat (limited to 'libpipe')
-rw-r--r--libpipe/pipe.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libpipe/pipe.c b/libpipe/pipe.c
index f9300e7c..b7ee8515 100644
--- a/libpipe/pipe.c
+++ b/libpipe/pipe.c
@@ -316,7 +316,11 @@ pipe_send (struct pipe *pipe, int noblock, void *source,
mach_port_t *ports, size_t num_ports,
size_t *amount)
{
- error_t err = 0;
+ error_t err;
+
+ /* Nothing to do. */
+ if (data_len == 0 && control_len == 0 && num_ports == 0)
+ return 0;
err = pipe_wait_writable (pipe, noblock);
if (err)