int Thread::swap(Thread *t, ucontext_t *ctxt)
{
t->set_state(THREAD_READY);
- return swapcontext(&t->context, ctxt);
+ return model_swapcontext(&t->context, ctxt);
}
/**
int Thread::swap(ucontext_t *ctxt, Thread *t)
{
t->set_state(THREAD_RUNNING);
- return swapcontext(ctxt, &t->context);
+ return model_swapcontext(ctxt, &t->context);
}
user_thread(NULL),
id(tid),
state(THREAD_READY), /* Thread is always ready? */
- wait_list(),
last_action_val(0),
model_thread(true)
{
* @param func The function that the thread will call.
* @param a The parameter to pass to this function.
*/
-Thread::Thread(thrd_t *t, void (*func)(void *), void *a, Thread *parent) :
+Thread::Thread(thread_id_t tid, thrd_t *t, void (*func)(void *), void *a, Thread *parent) :
parent(parent),
creation(NULL),
pending(NULL),
start_routine(func),
arg(a),
user_thread(t),
+ id(tid),
state(THREAD_CREATED),
- wait_list(),
last_action_val(VALUE_NONE),
model_thread(false)
{
if (ret)
model_print("Error in create_context\n");
- id = model->get_next_id();
user_thread->priv = this;
}