public void write(byte[] buf, int off, int len) throws IOException {try {beginWrite();dst.write(buf, off, len);} catch (InterruptedIOException e) {throw writeTimedOut(e);} finally {endWrite();}}
public override void Write(byte[] buf, int off, int len){try{BeginWrite();dst.Write(buf, off, len);}catch (ThreadInterruptedException){throw WriteTimedOut();}finally{EndWrite();}}