rem: if(_dc->sem) lock_release(&_dc->sem);
add: lock_release(&_dc->sem);
context: int dbt_db_del_table(dbt_cache_p _dc, str *_s){	tbl_cache_p _tbc = NULL;	if(!_dc || !_s || !_s->s || _s->len<=0)		return -1;	lock_get(&_dc->sem);	if(!_dc->dbp)	{		if(_dc->sem)			lock_release(&_dc->sem);		return -1;	}	_tbc = _dc->dbp->tables;	while(_tbc)	{		if(_tbc->dtp)		{			lock_get(&_tbc->sem);			if(_tbc->dtp->name.len == _s->len 				&& !strncasecmp(_tbc->dtp->name.s, _s->s, _s->len))			{				if(_tbc->prev)					(_tbc->prev)->next = _tbc->next;				else					_dc->dbp->tables = _tbc->next;					if(_tbc->next)					(_tbc->next)->prev = _tbc->prev;				break;			}			lock_release(&_tbc->sem);		}		_tbc = _tbc->next;	}	lock_release(&_dc->sem);	tbl_cache_free(_tbc);		return 0;}