question: private void waitUntilReadable ( ) throws IOException { readTimeout . enter ( ) ; try { while ( readBuffer . size ( ) == 0 && ! finished && ! closed && errorCode == null ) { waitForIo ( ) ; } } finally { readTimeout . exitAndThrowIfTimedOut ( ) ; } }
target:  Returns once the source is either readable or finished. 