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;
}