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