public void flush() throws IOException {try {beginWrite();dst.flush();} catch (InterruptedIOException e) {throw writeTimedOut(e);} finally {endWrite();}}
public override void Flush(){try{BeginWrite();dst.Flush();}catch (ThreadInterruptedException){throw WriteTimedOut();}finally{EndWrite();}}