enabled_len=threadid+1;
}
enabled[threadid]=enabled_status;
+ if (enabled_status == THREAD_DISABLED)
+ model->check_promises_thread_disabled();
}
/**
}
enabled_type_t Scheduler::get_enabled(Thread *t) {
- return enabled[id_to_int(t->get_id())];
+ int id = id_to_int(t->get_id());
+ ASSERT(id<enabled_len);
+ return enabled[id];
}
void Scheduler::update_sleep_set(Node *n) {
thread_id_t curr_tid=int_to_id(curr_thread_index);
if (enabled[curr_thread_index]==THREAD_ENABLED&&
(!have_enabled_thread_with_priority||n->has_priority(curr_tid))) {
- t = model->get_thread(int_to_id(curr_tid));
+ t = model->get_thread(curr_tid);
break;
}
if (curr_thread_index == old_curr_thread) {