static void * stack_allocate(size_t size)
{
- return malloc(size);
+ return userMalloc(size);
}
static void stack_free(void *stack)
{
- free(stack);
+ userFree(stack);
}
Thread * thread_current(void)
if (state != THREAD_COMPLETED) {
DEBUG("completed thread %d\n", get_id());
state = THREAD_COMPLETED;
- stack_free(stack);
+ if (stack)
+ stack_free(stack);
}
}
start_routine = NULL;
arg = NULL;
+ create_context();
+ stack = NULL;
state = THREAD_CREATED;
id = model->get_next_id();
*user_thread = id;
- create_context();
model->add_system_thread(this);
}
/* Wait for all threads to complete */
thread_wait_finish();
-
- model->print_trace();
} while (model->next_execution());
delete th;