示例#1
0
void sx_init(sxmanager *m, sx *x, svlog *log)
{
	x->manager = m;
	x->log = log;
	sx_promote(x, SX_UNDEF);
	ss_listinit(&x->deadlock);
}
示例#2
0
文件: si_node.c 项目: ifzz/sophia
sinode *si_nodenew(sr *r)
{
	sinode *n = (sinode*)ss_malloc(r->a, sizeof(sinode));
	if (ssunlikely(n == NULL)) {
		sr_oom_malfunction(r->e);
		return NULL;
	}
	n->recover = 0;
	n->backup = 0;
	n->lru = 0;
	n->ac = 0;
	n->flags = 0;
	n->update_time = 0;
	n->used = 0;
	n->in_memory = 0;
	si_branchinit(&n->self, r);
	n->branch = NULL;
	n->branch_count = 0;
	n->temperature = 0;
	n->temperature_reads = 0;
	ss_fileinit(&n->file, r->vfs);
	ss_mmapinit(&n->map);
	ss_mmapinit(&n->map_swap);
	sv_indexinit(&n->i0);
	sv_indexinit(&n->i1);
	ss_rbinitnode(&n->node);
	ss_rqinitnode(&n->nodecompact);
	ss_rqinitnode(&n->nodebranch);
	ss_rqinitnode(&n->nodetemp);
	ss_listinit(&n->commit);
	return n;
}
示例#3
0
文件: sx_deadlock.c 项目: bhdz/sophia
static inline void
sx_deadlock_unmark(sslist *mark)
{
	sslist *i, *n;
	ss_listforeach_safe(mark, i, n) {
		sx *t = sscast(i, sx, deadlock);
		ss_listinit(&t->deadlock);
	}
示例#4
0
文件: sx.c 项目: jason-xxl/sophia
int sx_indexinit(sxindex *i, sxmanager *m, sr *r, void *ptr)
{
	ss_rbinit(&i->i);
	ss_listinit(&i->link);
	i->dsn = 0;
	i->ptr = ptr;
	i->r = r;
	ss_listappend(&m->indexes, &i->link);
	return 0;
}
示例#5
0
int sx_indexinit(sxindex *i, sxmanager *m, sr *r, so *object)
{
	ss_rbinit(&i->i);
	ss_listinit(&i->link);
	i->dsn = 0;
	i->object = object;
	i->r = r;
	ss_listappend(&m->indexes, &i->link);
	return 0;
}
示例#6
0
文件: sx.c 项目: jason-xxl/sophia
int sx_managerinit(sxmanager *m, sr *r, ssa *asxv)
{
	ss_rbinit(&m->i);
	m->count_rd = 0;
	m->count_rw = 0;
	m->count_gc = 0;
	m->csn = 0;
	m->gc  = NULL;
	ss_spinlockinit(&m->lock);
	ss_listinit(&m->indexes);
	m->r = r;
	m->asxv = asxv;
	return 0;
}
示例#7
0
int sx_managerinit(sxmanager *m, srseq *seq, ssa *a)
{
	ss_rbinit(&m->i);
	m->count_rd = 0;
	m->count_rw = 0;
	m->count_gc = 0;
	m->csn = 0;
	m->gc  = NULL;
	ss_spinlockinit(&m->lock);
	ss_listinit(&m->indexes);
	sx_vpool_init(&m->pool, a);
	m->seq = seq;
	return 0;
}
示例#8
0
文件: sx.c 项目: jason-xxl/sophia
void sx_init(sxmanager *m, sx *x)
{
	x->manager = m;
	sv_loginit(&x->log);
	ss_listinit(&x->deadlock);
}
示例#9
0
void sx_init(sxmanager *m, sx *t)
{
	t->manager = m;
	sv_loginit(&t->log);
	ss_listinit(&t->deadlock);
}