move user-termination event for pipe/socket io requests into Pipe/Socket class instead of external Condition object