From 1153b97ace78afe69979d6aa0545486a5b01bb78 Mon Sep 17 00:00:00 2001 From: Matt Date: Sun, 31 Mar 2019 16:51:55 +0200 Subject: [PATCH] Use thread_local to protect globals from data race --- src/openrct2/drawing/Drawing.cpp | 8 ++++---- src/openrct2/drawing/Drawing.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/openrct2/drawing/Drawing.cpp b/src/openrct2/drawing/Drawing.cpp index 30f9dda4a0..a2caf9e958 100644 --- a/src/openrct2/drawing/Drawing.cpp +++ b/src/openrct2/drawing/Drawing.cpp @@ -19,11 +19,11 @@ #include "../world/Water.h" // HACK These were originally passed back through registers -int32_t gLastDrawStringX; -int32_t gLastDrawStringY; +thread_local int32_t gLastDrawStringX; +thread_local int32_t gLastDrawStringY; -int16_t gCurrentFontSpriteBase; -uint16_t gCurrentFontFlags; +thread_local int16_t gCurrentFontSpriteBase; +thread_local uint16_t gCurrentFontFlags; uint8_t gGamePalette[256 * 4]; uint32_t gPaletteEffectFrame; diff --git a/src/openrct2/drawing/Drawing.h b/src/openrct2/drawing/Drawing.h index d56404fd90..0e98f3358c 100644 --- a/src/openrct2/drawing/Drawing.h +++ b/src/openrct2/drawing/Drawing.h @@ -237,8 +237,8 @@ struct rct_size16 #define MAX_SCROLLING_TEXT_MODES 38 -extern int16_t gCurrentFontSpriteBase; -extern uint16_t gCurrentFontFlags; +extern thread_local int16_t gCurrentFontSpriteBase; +extern thread_local uint16_t gCurrentFontFlags; extern rct_palette_entry gPalette[256]; extern uint8_t gGamePalette[256 * 4]; @@ -250,8 +250,8 @@ extern uint8_t gOtherPalette[256]; extern uint8_t text_palette[]; extern const translucent_window_palette TranslucentWindowPalettes[COLOUR_COUNT]; -extern int32_t gLastDrawStringX; -extern int32_t gLastDrawStringY; +extern thread_local int32_t gLastDrawStringX; +extern thread_local int32_t gLastDrawStringY; extern uint32_t gPickupPeepImage; extern int32_t gPickupPeepX;