public function release() { if ($this->_count < 1) { throw new Exception('no lock to release'); } if ($this->_count === 1) { if (!flock($this->getHandle(), LOCK_UN)) { throw new Exception('failed release lock'); } } --$this->_count; }