/** Allocate a stack for a new thread. */
static void * stack_allocate(size_t size)
{
+ // TODO: This could be a bug if we have programs that start threads
+ // in different orders. The solution is to use the same strategy
+ // the ALLOC action uses.
+
return snapshot_malloc(size);
}
user_thread(NULL),
waiting(NULL),
id(tid),
- state(THREAD_READY), /* Thread is always ready? */
+ state(THREAD_READY), /* Thread is always ready? */
model_thread(true)
{
memset(&context, 0, sizeof(context));
*/
bool Thread::is_waiting_on(const Thread *t) {
Thread *wait;
- for (wait = waiting_on(); wait != NULL; wait = wait->waiting_on())
+ for (wait = waiting_on();wait != NULL;wait = wait->waiting_on())
if (wait == t)
return true;
return false;