rem: _cachedb = _dcache->next;
add: *_cachedb = _dcache->next;
context: int dbt_cache_del_db(str *_s){	dbt_cache_p _dcache=NULL;;	if(!_cachesem || !_cachedb || !_s || !_s->s || _s->len<=0)		return -1;		lock_get(_cachesem);		_dcache = _cachedb;	while(_dcache)	{		if(_dcache->dbp)		{			if(_dcache->dbp->name.len == _s->len 					&& strncasecmp(_dcache->dbp->name.s, _s->s, _s->len))				break;		}		// else - delete this cell		_dcache = _dcache->next;	}	if(!_dcache)	{		lock_release(_cachesem);		return 0;	}		if(_dcache->prev)		(_dcache->prev)->next = _dcache->next;	else		_cachedb = _dcache->next;	if(_dcache->next)		(_dcache->next)->prev = _dcache->prev;		lock_release(_cachesem);		dbt_cache_free(_dcache);		return 0;}