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