From 89d88a5bcf1619fc83d9680316f1333d40c9849f Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 1 Jul 2016 03:03:02 +0300 Subject: [PATCH] lib: ostream-file now automatically corks during flush callback. --- src/lib/ostream-file.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/lib/ostream-file.c b/src/lib/ostream-file.c index a1c71c5a72..7fc4c27ea6 100644 --- a/src/lib/ostream-file.c +++ b/src/lib/ostream-file.c @@ -462,6 +462,7 @@ static void o_stream_grow_buffer(struct file_ostream *fstream, size_t bytes) static void stream_send_io(struct file_ostream *fstream) { struct ostream *ostream = &fstream->ostream.ostream; + bool use_cork = !fstream->ostream.corked; int ret; /* Set flush_pending = FALSE first before calling the flush callback, @@ -471,10 +472,14 @@ static void stream_send_io(struct file_ostream *fstream) fstream->flush_pending = FALSE; o_stream_ref(ostream); + if (use_cork) + o_stream_cork(ostream); if (fstream->ostream.callback != NULL) ret = fstream->ostream.callback(fstream->ostream.context); else ret = o_stream_file_flush(&fstream->ostream); + if (use_cork) + o_stream_uncork(ostream); if (ret == 0) fstream->flush_pending = TRUE; -- 2.47.3