Lines Matching defs:inst
63 struct instance *inst;
74 inst = b->_b_inst;
77 if (!inst) {
80 b->_b_inst = inst = &new_inst;
83 while (spins-- && !inst->finished)
85 a_inc(&inst->finished);
86 while (inst->finished == 1)
87 __syscall(SYS_futex,&inst->finished,FUTEX_WAIT|128,1,0) != -ENOSYS
88 || __syscall(SYS_futex,&inst->finished,FUTEX_WAIT,1,0);
93 if (++inst->count == limit) {
97 a_store(&inst->last, 1);
98 if (inst->waiters)
99 __wake(&inst->last, -1, 1);
103 __wait(&inst->last, &inst->waiters, 0, 1);
107 if (a_fetch_add(&inst->count,-1)==1 && a_fetch_add(&inst->finished,1))
108 __wake(&inst->finished, 1, 1);