public void beginReading() { super.beginReading(); buf.flip(); // don't need to synchronize -- we hold the semaphore }