- for (int i = 0; i < enabled_len; i++) {
- curr_thread_index = (old_curr_thread + i + 1) % enabled_len;
- thread_id_t curr_tid = int_to_id(curr_thread_index);
- if (model->params.yieldon) {
- bool bad_thread = false;
- for (int j = 0; j < enabled_len; j++) {
- thread_id_t tother = int_to_id(j);
- if ((enabled[j] != THREAD_DISABLED) && n->has_priority_over(curr_tid, tother)) {
- bad_thread=true;
- break;
- }
- }
- if (bad_thread)
- continue;
- }
-
- if (enabled[curr_thread_index] == THREAD_ENABLED &&
- (!have_enabled_thread_with_priority || n->has_priority(curr_tid))) {
- return model->get_thread(curr_tid);
- }
- }
-
- /* No thread was enabled */
- return NULL;
+ Thread * thread = execution->getFuzzer()->selectThread(thread_list, avail_threads);
+ curr_thread_index = id_to_int(thread->get_id());
+ return thread;