Browse Source

Simplify logic for `-thread-count:1`

gingerBill 4 years ago
parent
commit
ac191bd31f
2 changed files with 8 additions and 20 deletions
  1. 0 20
      src/checker.cpp
  2. 8 0
      src/thread_pool.cpp

+ 0 - 20
src/checker.cpp

@@ -4149,17 +4149,6 @@ void check_with_workers(Checker *c, WorkerTaskProc *proc, isize total_count) {
 
 	semaphore_post(&c->info.collect_semaphore, cast(i32)thread_count);
 
-	if (worker_count == 0) {
-		ThreadProcCheckerSection section_all = {};
-		section_all.checker = c;
-		section_all.offset = 0;
-		section_all.count = total_count;
-		Thread dummy_main_thread = {};
-		dummy_main_thread.user_data = &section_all;
-		proc(&dummy_main_thread);
-		return;
-	}
-
 	isize file_load_count = (total_count+thread_count-1)/thread_count;
 	isize remaining_count = total_count;
 
@@ -4764,15 +4753,6 @@ void check_procedure_bodies(Checker *c) {
 	u32 worker_count = thread_count-1; // NOTE(bill): The main thread will also be used for work
 	if (!build_context.threaded_checker) {
 		worker_count = 0;
-
-		auto *q = &c->procs_to_check_queue;
-		ProcInfo *pi = nullptr;
-		while (mpmc_dequeue(q, &pi)) {
-			consume_proc_info_queue(c, pi, q, nullptr);
-		}
-
-		debugf("Total Procedure Bodies Checked: %td\n", total_bodies_checked.load(std::memory_order_relaxed));
-		return;
 	}
 
 	global_procedure_body_in_worker_queue = true;

+ 8 - 0
src/thread_pool.cpp

@@ -104,6 +104,14 @@ void thread_pool_do_task(WorkerTask *task) {
 }
 
 void thread_pool_wait(ThreadPool *pool) {
+	if (pool->threads.count == 0) {
+		while (!thread_pool_queue_empty(pool)) {
+			thread_pool_do_task(thread_pool_queue_pop(pool));
+			--pool->ready;
+		}
+		GB_ASSERT(pool->ready == 0);
+		return;
+	}
 	for (;;) {
 		mutex_lock(&pool->mutex);