public int read(byte[] buf, int off, int cnt) throws IOException {try {beginRead();return super.read(buf, off, cnt);} catch (InterruptedIOException e) {throw readTimedOut(e);} finally {endRead();}}

public int read ( byte [ ] buf , int off , int cnt ) throws IOException { try { beginRead ( ) ; return super . read ( buf , off , cnt ) ; } catch ( InterruptedIOException e ) { throw readTimedOut ( e ) ; } finally { endRead ( ) ; } }
public override int Read(byte[] buf, int off, int cnt){try{BeginRead();return base.Read(buf, off, cnt);}catch (ThreadInterruptedException){throw ReadTimedOut();}finally{EndRead();}}
