From: Derek Yeh <djyeh@plrg-1.ics.uci.edu>
Date: Fri, 31 Jul 2020 00:04:48 +0000 (-0700)
Subject: fix thread switch
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=4f75769ad58872159aeaa4d96198080a7d6a4908;p=c11tester.git

fix thread switch
---

diff --git a/model.cc b/model.cc
index 1c411bd6..53bb7b0d 100644
--- a/model.cc
+++ b/model.cc
@@ -351,8 +351,8 @@ void ModelChecker::continueExecution(Thread *old)
 		checkfree += params.checkthreshold;
 		execution->collectActions();
 	}
-	curr_thread_num = 0;
-	thread_id_t tid = int_to_id(0);
+	curr_thread_num = 1;
+	thread_id_t tid = int_to_id(1);
 	Thread *thr = get_thread(tid);
 	scheduler->set_current_thread(thr);
 	if (Thread::swap(old, thr) < 0) {
@@ -404,7 +404,7 @@ uint64_t ModelChecker::switch_thread(ModelAction *act)
 	while (curr_thread_num < get_num_threads()) {
 		thread_id_t tid = int_to_id(curr_thread_num);
 		next = get_thread(tid);
-		if (!next->is_model_thread() && !next->is_complete() && !next->get_pending())
+		if (!next->is_complete() && !next->get_pending())
 			break;
 		curr_thread_num++;
 	}
@@ -504,8 +504,8 @@ void ModelChecker::run()
 	for(int exec = 0;exec < params.maxexecutions;exec++) {
 		chosen_thread = init_thread;
 		thread_chosen = false;
-		curr_thread_num = 0;
-		thread_id_t tid = int_to_id(0);
+		curr_thread_num = 1;
+		thread_id_t tid = int_to_id(1);
 		Thread *thr = get_thread(tid);
 		switch_from_master(thr);
 		finish_execution((exec+1) < params.maxexecutions);