if (requested == 0) { try { _readLock.wait(); } catch (InterruptedException ie) {} return 0; }
    private int reserveRead(int requested) {        if (_shared) {            return reserveShared(requested);        }        synchronized(_readLock) {            while(_readAvailable == 0) {                try {                    _readLock.wait();                } catch (InterruptedException ie) {}            }            int allocation = Math.min(requested, _readAvailable);            _readAvailable -= allocation;            return allocation;        }    }