X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fio%2Fpipe.cpp;h=1301b3ad0a8ce2a8554157d3d737bfa99b9bd06a;hp=0a72a80068da4d9ac686fdb8cd3216801e316725;hb=be8ea216d23bf36bdfb2d3e302638782575fc136;hpb=9a4c531eb1aa68595cd3ab074b31bfa565aaefe2 diff --git a/source/io/pipe.cpp b/source/io/pipe.cpp index 0a72a80..1301b3a 100644 --- a/source/io/pipe.cpp +++ b/source/io/pipe.cpp @@ -42,14 +42,18 @@ void Pipe::set_mode(Mode m) void Pipe::set_block(bool b) { - mode = (mode&~M_NONBLOCK); - if(b) - mode = (mode|M_NONBLOCK); - + adjust_mode(mode, M_NONBLOCK, !b); sys_set_blocking(read_handle, b); sys_set_blocking(write_handle, b); } +void Pipe::set_inherit(bool i) +{ + adjust_mode(mode, M_INHERIT, i); + sys_set_inherit(read_handle, i); + sys_set_inherit(write_handle, i); +} + unsigned Pipe::do_write(const char *buf, unsigned size) { if(size==0)