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();
}
Pipe::~Pipe()
-{
- close();
-}
-
-void Pipe::close()
{
set_events(P_NONE);
return 0;
unsigned ret = reader.read(buf, size);
-
if(ret==0)
- {
- eof_flag = true;
- signal_end_of_file.emit();
- }
+ set_eof();
return ret;
}