From 3020cecd08512200861abbc5c213e53ac41acd79 Mon Sep 17 00:00:00 2001 From: Fernando Nunes Date: Sat, 8 Aug 2026 20:25:52 -0300 Subject: [PATCH] core/odin/tokenizer: fix broken double-checked lock in `init` --- core/odin/tokenizer/tokenizer.odin | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/odin/tokenizer/tokenizer.odin b/core/odin/tokenizer/tokenizer.odin index 483589ad4..ab0c736d4 100644 --- a/core/odin/tokenizer/tokenizer.odin +++ b/core/odin/tokenizer/tokenizer.odin @@ -109,8 +109,10 @@ init :: proc(t: ^Tokenizer, src: string, path: string, err: Error_Handler = defa if !intrinsics.atomic_load(&_global_keyword_lut_initialized) { _global_keyword_spin_lock() - ok := keyword_lut_init(&global_keyword_lut) - intrinsics.atomic_store(&_global_keyword_lut_initialized, ok) + if !intrinsics.atomic_load(&_global_keyword_lut_initialized) { + ok := keyword_lut_init(&global_keyword_lut) + intrinsics.atomic_store(&_global_keyword_lut_initialized, ok) + } _global_keyword_spin_unlock() }