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.
pull/332/head
Patric Stout 3 years ago committed by GitHub
parent 281a65b3e1
commit c12a152ec9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -41,7 +41,7 @@ bool _right_button_down; ///< Is right mouse button pressed?
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;

@ -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 */

Loading…
Cancel
Save