Similar to istream.blocking.
struct ostream *output;
bstream = i_new(struct buffer_ostream, 1);
+ bstream->ostream.ostream.blocking = TRUE;
bstream->ostream.max_buffer_size = (size_t)-1;
bstream->ostream.seek = o_stream_buffer_seek;
bstream->ostream.sendv = o_stream_buffer_sendv;
fstream_init_file(fstream);
fstream->real_offset = offset;
fstream->buffer_offset = offset;
+ ostream->blocking = fstream->file;
ostream->offset = offset;
return ostream;
}
struct ostream *output;
stream = i_new(struct ostream_private, 1);
+ stream->ostream.blocking = TRUE;
stream->sendv = o_stream_null_sendv;
output = o_stream_create(stream, NULL, -1);
i_assert(stream->stream_errno != 0);
errno = stream->stream_errno;
} else {
+ i_assert(!stream->blocking);
stream->overflow = TRUE;
*overflow_r = TRUE;
}
_stream->fd = fd;
_stream->ostream.real_stream = _stream;
if (parent != NULL) {
+ _stream->ostream.blocking = parent->blocking;
_stream->parent = parent;
o_stream_ref(parent);
struct ostream *output;
stream = i_new(struct ostream_private, 1);
+ stream->ostream.blocking = TRUE;
stream->ostream.closed = TRUE;
stream->ostream.stream_errno = stream_errno;
functions was neither sent nor buffered. It's never unset inside
ostream code. */
unsigned int overflow:1;
+ /* o_stream_send() writes all the data or returns failure */
+ unsigned int blocking:1;
unsigned int closed:1;
struct ostream_private *real_stream;