Changeset - r25710:60c9c8536270
[Not reviewed]
master
0 2 0
Patric Stout - 3 years ago 2021-06-17 16:58:59
truebrain@openttd.org
Fix: thread safety issue during exiting the game (#9380)

_exit_game is read by the draw-thread to know when to exit, but
most of the time written by the game-thread.
2 files changed with 3 insertions and 2 deletions:
0 comments (0 inline, 0 general)
src/gfx.cpp
Show inline comments
 
@@ -41,7 +41,7 @@ bool _right_button_down;    ///< Is righ
 
bool _right_button_clicked; ///< Is right mouse button clicked?
 
DrawPixelInfo _screen;
 
bool _screen_disable_anim = false;   ///< Disable palette animation (important for 32bpp-anim blitter during giant screenshot)
 
bool _exit_game;
 
std::atomic<bool> _exit_game;
 
GameMode _game_mode;
 
SwitchMode _switch_mode;  ///< The next mainloop command.
 
PauseMode _pause_mode;
src/openttd.h
Show inline comments
 
@@ -10,6 +10,7 @@
 
#ifndef OPENTTD_H
 
#define OPENTTD_H
 

	
 
#include <atomic>
 
#include "core/enum_type.hpp"
 

	
 
/** Mode which defines the state of the game. */
 
@@ -52,7 +53,7 @@ enum DisplayOptions {
 

	
 
extern GameMode _game_mode;
 
extern SwitchMode _switch_mode;
 
extern bool _exit_game;
 
extern std::atomic<bool> _exit_game;
 
extern bool _save_config;
 

	
 
/** Modes of pausing we've got */
0 comments (0 inline, 0 general)