From b33bf3f7042464ac4f6e187fc487ee42668fcef7 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Thu, 26 Aug 2021 22:17:51 +0100 Subject: Correct race condition and incorrect usage of `condition_signal` outside of a mutex lock --- src/exact_value.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/exact_value.cpp') diff --git a/src/exact_value.cpp b/src/exact_value.cpp index 17b593995..d42f5359e 100644 --- a/src/exact_value.cpp +++ b/src/exact_value.cpp @@ -3,6 +3,8 @@ // TODO(bill): Big numbers // IMPORTANT TODO(bill): This needs to be completely fixed!!!!!!!! +gb_global BlockingMutex hash_exact_value_mutex; + struct Ast; struct HashKey; struct Type; @@ -62,6 +64,9 @@ struct ExactValue { gb_global ExactValue const empty_exact_value = {}; HashKey hash_exact_value(ExactValue v) { + mutex_lock(&hash_exact_value_mutex); + defer (mutex_unlock(&hash_exact_value_mutex)); + HashKey empty = {}; switch (v.kind) { case ExactValue_Invalid: -- cgit v1.2.3