Lines Matching refs:lthreads
58 static volatile struct lthread lthreads[MAX_THREADS]; variable
174 lthreads[i].state = STATE_EMPTY; in sched_init()
177 lthreads[current_tid].state = STATE_RUNNABLE; in sched_init()
179 (unsigned)lthreads[current_tid].context); in sched_init()
190 if(lthreads[new].state == STATE_RUNNABLE) { \ in thread_yield()
193 (unsigned)lthreads[current_tid].context); \ in thread_yield()
194 if(setjmp(lthreads[current_tid].context) == 0) { \ in thread_yield()
198 longjmp(lthreads[new].context, 1); \ in thread_yield()
225 if (lthreads[i].state == STATE_EMPTY) { in thread_create()
226 lthreads[i].state = STATE_STOPPED; in thread_create()
227 lthreads[i].func = func; in thread_create()
228 lthreads[i].arg = arg; in thread_create()
246 lthreads[id].state = STATE_EMPTY; in thread_delete()
253 (unsigned)lthreads[current_tid].func); in thread_launcher()
255 lthreads[current_tid].retval = in thread_launcher()
256 lthreads[current_tid].func (lthreads[current_tid].arg); in thread_launcher()
260 lthreads[current_tid].state = STATE_TERMINATED; in thread_launcher()
274 if (lthreads[id].state != STATE_STOPPED) in thread_start()
277 if (setjmp (lthreads[current_tid].context) == 0) { in thread_start()
278 lthreads[id].state = STATE_RUNNABLE; in thread_start()
281 (unsigned)lthreads[id].stack); in thread_start()
282 setctxsp ((vu_char *)<hreads[id].stack[STK_SIZE]); in thread_start()
300 lthreads[id].state = STATE_STOPPED;
322 if (lthreads[i].state == STATE_TERMINATED) { in thread_join()
323 *ret = lthreads[i].retval; in thread_join()
324 lthreads[i].state = STATE_EMPTY; in thread_join()
330 if (lthreads[i].state != STATE_EMPTY) { in thread_join()
332 j, i, lthreads[i].state); in thread_join()
346 if (lthreads[*ret].state == STATE_TERMINATED) { in thread_join()
348 *ret = lthreads[*ret].retval; in thread_join()
349 lthreads[*ret].state = STATE_EMPTY; in thread_join()