]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/pipe.cpp
Remove signal_closed now that closing is only done in the destructor
[libs/core.git] / source / io / pipe.cpp
index f52801cd834e550199a808ab99020adcac8d6a27..c011cef54f86d6e8fb2adac02e6869e8e0422ef3 100644 (file)
@@ -21,7 +21,7 @@ Pipe::Pipe():
        if(!handle[0])
                throw system_error("CreateNamedPipe");
 
-       *handle[1] = CreateFile(name.c_str(), GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
+       *handle[1] = CreateFile(name.c_str(), GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
        if(!handle[1])
        {
                unsigned err = GetLastError();
@@ -41,18 +41,12 @@ Pipe::Pipe():
 }
 
 Pipe::~Pipe()
-{
-       close();
-}
-
-void Pipe::close()
 {
        set_events(P_NONE);
 
        signal_flush_required.emit();
        sys_close(handle[0]);
        sys_close(handle[1]);
-       signal_closed.emit();
 }
 
 void Pipe::set_block(bool b)
@@ -83,12 +77,8 @@ unsigned Pipe::do_read(char *buf, unsigned size)
                return 0;
 
        unsigned ret = reader.read(buf, size);
-
        if(ret==0)
-       {
-               eof_flag = true;
-               signal_end_of_file.emit();
-       }
+               set_eof();
 
        return ret;
 }