shadowm icon

naia-iftu-boot-before-prompt.txt

shadowm | PRO | 05/26/18 02:50:03 AM UTC | 0 ⭐ | 397 👁️ | Never ⏰ | []
text |

1.89 MB

|

None

|

0 👍

/

0 👎

==================WARNING: ThreadSanitizer: data race (pid=17519)  Write of size 8 at 0x7b140018a218 by main thread:    #0 operator delete(void*) <null> (libtsan.so.0+0x6f3d1)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned long const, gui2::timer> > >::deallocate(std::_Rb_tree_node<std::pair<unsigned long const, gui2::timer> >*, unsigned long) /usr/include/c++/7/ext/new_allocator.h:125 (wesnoth-debug+0x422b3f9)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned long const, gui2::timer> > > >::deallocate(std::allocator<std::_Rb_tree_node<std::pair<unsigned long const, gui2::timer> > >&, std::_Rb_tree_node<std::pair<unsigned long const, gui2::timer> >*, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:462 (wesnoth-debug+0x422b13d)    #3 std::_Rb_tree<unsigned long, std::pair<unsigned long const, gui2::timer>, std::_Select1st<std::pair<unsigned long const, gui2::timer> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, gui2::timer> > >::_M_put_node(std::_Rb_tree_node<std::pair<unsigned long const, gui2::timer> >*) /usr/include/c++/7/bits/stl_tree.h:592 (wesnoth-debug+0x422ab68)    #4 std::_Rb_tree<unsigned long, std::pair<unsigned long const, gui2::timer>, std::_Select1st<std::pair<unsigned long const, gui2::timer> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, gui2::timer> > >::_M_drop_node(std::_Rb_tree_node<std::pair<unsigned long const, gui2::timer> >*) /usr/include/c++/7/bits/stl_tree.h:659 (wesnoth-debug+0x4229741)    #5 std::_Rb_tree<unsigned long, std::pair<unsigned long const, gui2::timer>, std::_Select1st<std::pair<unsigned long const, gui2::timer> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, gui2::timer> > >::_M_erase_aux(std::_Rb_tree_const_iterator<std::pair<unsigned long const, gui2::timer> >) /usr/include/c++/7/bits/stl_tree.h:2477 (wesnoth-debug+0x422a9ad)    #6 std::_Rb_tree<unsigned long, std::pair<unsigned long const, gui2::timer>, std::_Select1st<std::pair<unsigned long const, gui2::timer> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, gui2::timer> > >::erase[abi:cxx11](std::_Rb_tree_iterator<std::pair<unsigned long const, gui2::timer> >) <null> (wesnoth-debug+0x42295cb)    #7 std::map<unsigned long, gui2::timer, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, gui2::timer> > >::erase[abi:cxx11](std::_Rb_tree_iterator<std::pair<unsigned long const, gui2::timer> >) <null> (wesnoth-debug+0x42289e3)    #8 gui2::remove_timer(unsigned long) src/gui/core/timer.cpp:170 (wesnoth-debug+0x4227a28)    #9 gui2::dialogs::loading_screen::clear_timer() src/gui/dialogs/loading_screen.cpp:233 (wesnoth-debug+0x4276c87)    #10 gui2::dialogs::loading_screen::post_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:138 (wesnoth-debug+0x4274750)    #11 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:108 (wesnoth-debug+0x42a2ced)    #12 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #13 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:968 (wesnoth-debug+0x40f568f)    #14 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #15 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous read of size 4 at 0x7b140018a21c by thread T1:    #0 timer_callback src/gui/core/timer.cpp:106 (wesnoth-debug+0x4226e69)    #1 <null> <null> (libSDL2-2.0.so.0+0x67fc8)   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:968 (wesnoth-debug+0x40f568f)    #5 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #6 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Thread T1 'SDLTimer' (tid=17521, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 <null> <null> (libSDL2-2.0.so.0+0xd8e36)    #2 __libc_start_main <null> (libc.so.6+0x21a86) SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x6f3d1) in operator delete(void*)==================20180525 22:47:25 info wml: [Naia] codename Naia version 20180525 initializing20180525 22:47:25 info wml: [Naia] Init: loading ~add-ons/Naia/lua/package.lua20180525 22:47:25 info wml: [Naia] Init: loading ~add-ons/Naia/lua/hex.lua20180525 22:47:25 info wml: [Naia] Init: loading ~add-ons/Naia/lua/common.lua20180525 22:47:25 info wml: [Naia] Init: loading ~add-ons/Naia/lua/npc.lua20180525 22:47:25 info wml: [Naia] Init: loading ~add-ons/Naia/lua/optimizations.lua20180525 22:47:25 info wml: [Naia] Init: loading ~add-ons/Naia/lua/patch.lua20180525 22:47:25 info wml: [Naia] PATCH [remove_sound_source]: comma-separated id list20180525 22:47:25 info wml: [Naia] PATCH [message]: [fallback_if]/[fallback_to]20180525 22:47:25 info wml: [Naia] Init: loading ~add-ons/Naia/lua/spawner.lua20180525 22:47:25 info wml: [Naia] Init: loading ~add-ons/Naia/lua/wlp.lua20180525 22:47:25 info wml: [Naia] Init: loading ~add-ons/Naia/lua/gui/bug.lua20180525 22:47:25 info wml: [Naia] Init: loading ~add-ons/Naia/lua/gui/transient_message.lua20180525 22:47:25 info wml: [Naia] Init: loading ~add-ons/Naia/lua/compat.lua20180525 22:47:25 info wml: [Naia] Invasion from the Unknown (project_ethea.Invasion_from_the_Unknown) version 2.1.0-dev (Naia 20180525)20180525 22:47:25 error wml: [IftU] BUG: This is an experimental port of Invasion from the Unknown to Wesnoth 1.14.x.If you choose to continue, you must report any issues to the author on the project?s issue tracker:==================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 4 at 0x7b1c01e9a980 by main thread:    #0 std::less<gui2::event::ui_event>::operator()(gui2::event::ui_event const&, gui2::event::ui_event const&) const /usr/include/c++/7/bits/stl_function.h:386 (wesnoth-debug+0x3979847)    #1 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >::_M_lower_bound(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > >*, std::_Rb_tree_node_base*, gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_tree.h:1872 (wesnoth-debug+0x3bb2b94)    #2 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >::lower_bound(gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_tree.h:1187 (wesnoth-debug+0x3bb00d2)    #3 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >::lower_bound(gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_map.h:1234 (wesnoth-debug+0x3bae94e)    #4 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >::operator[](gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_map.h:489 (wesnoth-debug+0x3bacb7c)    #5 std::enable_if<boost::mpl::has_key<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, mpl_::int_<4> >::value, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > >::type& gui2::event::dispatcher_implementation::event_signal<mpl_::int_<4> >(gui2::event::dispatcher&, gui2::event::ui_event) src/gui/core/event/dispatcher_private.hpp:107 (wesnoth-debug+0x41c3f07)    #6 bool gui2::event::dispatcher_implementation::has_handler::oper<mpl_::int_<4> >(gui2::event::ui_event) src/gui/core/event/dispatcher_private.hpp:154 (wesnoth-debug+0x41c2dbb)    #7 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:205 (wesnoth-debug+0x41c1b29)    #8 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41c08b7)    #9 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41bf639)    #10 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41be3d3)    #11 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41bcf7b)    #12 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41bbacd)    #13 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41b9cb3)    #14 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41b7681)    #15 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41b2951)    #16 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<41>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<41>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41ac7fd)    #17 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<28>, boost::mpl::s_item<mpl_::int_<41>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<28>, boost::mpl::s_item<mpl_::int_<41>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41a7753)    #18 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<29>, boost::mpl::s_item<mpl_::int_<28>, boost::mpl::s_item<mpl_::int_<41>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<29>, boost::mpl::s_item<mpl_::int_<28>, boost::mpl::s_item<mpl_::int_<41>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41a1c35)    #19 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<26>, boost::mpl::s_item<mpl_::int_<29>, boost::mpl::s_item<mpl_::int_<28>, boost::mpl::s_item<mpl_::int_<41>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<26>, boost::mpl::s_item<mpl_::int_<29>, boost::mpl::s_item<mpl_::int_<28>, boost::mpl::s_item<mpl_::int_<41>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x4198b7f)    #20 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<27>, boost::mpl::s_item<mpl_::int_<26>, boost::mpl::s_item<mpl_::int_<29>, boost::mpl::s_item<mpl_::int_<28>, boost::mpl::s_item<mpl_::int_<41>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<27>, boost::mpl::s_item<mpl_::int_<26>, boost::mpl::s_item<mpl_::int_<29>, boost::mpl::s_item<mpl_::int_<28>, boost::mpl::s_item<mpl_::int_<41>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x418bd15)    #21 bool gui2::event::find<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:246 (wesnoth-debug+0x4187059)    #22 gui2::event::dispatcher::has_event(gui2::event::ui_event, gui2::event::dispatcher::event_queue_type) src/gui/core/event/dispatcher.cpp:80 (wesnoth-debug+0x41822c1)    #23 std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > > gui2::event::implementation::build_event_chain<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> >(gui2::event::ui_event, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:310 (wesnoth-debug+0x418dc1b)    #24 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:502 (wesnoth-debug+0x4188ac6)    #25 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #26 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #27 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #28 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #29 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #30 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #31 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #32 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #33 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #34 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #35 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #36 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #37 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #38 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #39 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b1c01e9a980 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 112 at 0x7b1c01e9a960 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x3bb5bb6)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x3bb4b92)    #3 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x3bb2cdb)    #4 std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > >* std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x3bb020b)    #5 std::_Rb_tree_iterator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > >, std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x3baed57)    #6 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >::operator[](gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x3bacd5e)    #7 gui2::event::dispatcher::signal_queue<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> >::connect_signal(gui2::event::ui_event, gui2::event::dispatcher::queue_position, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> const&) src/gui/core/event/dispatcher.hpp:729 (wesnoth-debug+0x3baa852)    #8 std::enable_if<boost::mpl::has_key<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, mpl_::int_<(gui2::event::ui_event)3> >::value, void>::type gui2::event::dispatcher::connect_signal<(gui2::event::ui_event)3>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> const&, gui2::event::dispatcher::queue_position) src/gui/core/event/dispatcher.hpp:398 (wesnoth-debug+0x3c6535d)    #9 gui2::window::window(gui2::builder_window::window_resolution const*) src/gui/widgets/window.cpp:324 (wesnoth-debug+0x3c40e42)    #10 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee5b)    #11 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #12 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #13 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #14 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #15 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #16 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #17 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #18 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #19 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #20 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #21 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #22 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #23 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #24 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #25 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #26 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #27 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #28 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #29 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #30 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #31 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #32 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #33 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/stl_function.h:386 in std::less<gui2::event::ui_event>::operator()(gui2::event::ui_event const&, gui2::event::ui_event const&) const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b1c01e9a978 by main thread:    #0 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >::_S_right(std::_Rb_tree_node_base*) /usr/include/c++/7/bits/stl_tree.h:772 (wesnoth-debug+0x3bb37cf)    #1 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >::_M_lower_bound(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > >*, std::_Rb_tree_node_base*, gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_tree.h:1875 (wesnoth-debug+0x3bb2bc1)    #2 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >::lower_bound(gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_tree.h:1187 (wesnoth-debug+0x3bb00d2)    #3 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >::lower_bound(gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_map.h:1234 (wesnoth-debug+0x3bae94e)    #4 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >::operator[](gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_map.h:489 (wesnoth-debug+0x3bacb7c)    #5 std::enable_if<boost::mpl::has_key<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, mpl_::int_<4> >::value, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > >::type& gui2::event::dispatcher_implementation::event_signal<mpl_::int_<4> >(gui2::event::dispatcher&, gui2::event::ui_event) src/gui/core/event/dispatcher_private.hpp:107 (wesnoth-debug+0x41c3f07)    #6 bool gui2::event::dispatcher_implementation::has_handler::oper<mpl_::int_<4> >(gui2::event::ui_event) src/gui/core/event/dispatcher_private.hpp:154 (wesnoth-debug+0x41c2dbb)    #7 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:205 (wesnoth-debug+0x41c1b29)    #8 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41c08b7)    #9 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41bf639)    #10 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41be3d3)    #11 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41bcf7b)    #12 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41bbacd)    #13 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41b9cb3)    #14 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41b7681)    #15 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41b2951)    #16 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<41>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<41>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41ac7fd)    #17 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<28>, boost::mpl::s_item<mpl_::int_<41>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<28>, boost::mpl::s_item<mpl_::int_<41>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41a7753)    #18 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<29>, boost::mpl::s_item<mpl_::int_<28>, boost::mpl::s_item<mpl_::int_<41>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<29>, boost::mpl::s_item<mpl_::int_<28>, boost::mpl::s_item<mpl_::int_<41>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41a1c35)    #19 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<26>, boost::mpl::s_item<mpl_::int_<29>, boost::mpl::s_item<mpl_::int_<28>, boost::mpl::s_item<mpl_::int_<41>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<26>, boost::mpl::s_item<mpl_::int_<29>, boost::mpl::s_item<mpl_::int_<28>, boost::mpl::s_item<mpl_::int_<41>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x4198b7f)    #20 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<27>, boost::mpl::s_item<mpl_::int_<26>, boost::mpl::s_item<mpl_::int_<29>, boost::mpl::s_item<mpl_::int_<28>, boost::mpl::s_item<mpl_::int_<41>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<27>, boost::mpl::s_item<mpl_::int_<26>, boost::mpl::s_item<mpl_::int_<29>, boost::mpl::s_item<mpl_::int_<28>, boost::mpl::s_item<mpl_::int_<41>, boost::mpl::s_item<mpl_::int_<38>, boost::mpl::s_item<mpl_::int_<21>, boost::mpl::s_item<mpl_::int_<20>, boost::mpl::s_item<mpl_::int_<15>, boost::mpl::s_item<mpl_::int_<14>, boost::mpl::s_item<mpl_::int_<9>, boost::mpl::s_item<mpl_::int_<8>, boost::mpl::s_item<mpl_::int_<6>, boost::mpl::s_item<mpl_::int_<4>, boost::mpl::s_item<mpl_::int_<3>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x418bd15)    #21 bool gui2::event::find<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:246 (wesnoth-debug+0x4187059)    #22 gui2::event::dispatcher::has_event(gui2::event::ui_event, gui2::event::dispatcher::event_queue_type) src/gui/core/event/dispatcher.cpp:80 (wesnoth-debug+0x41822c1)    #23 std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > > gui2::event::implementation::build_event_chain<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> >(gui2::event::ui_event, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:310 (wesnoth-debug+0x418dc1b)    #24 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:502 (wesnoth-debug+0x4188ac6)    #25 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #26 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #27 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #28 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #29 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #30 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #31 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #32 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #33 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #34 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #35 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #36 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #37 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #38 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #39 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b1c01e9a978 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 112 at 0x7b1c01e9a960 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x3bb5bb6)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x3bb4b92)    #3 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x3bb2cdb)    #4 std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > >* std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x3bb020b)    #5 std::_Rb_tree_iterator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > >, std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x3baed57)    #6 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >::operator[](gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x3bacd5e)    #7 gui2::event::dispatcher::signal_queue<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> >::connect_signal(gui2::event::ui_event, gui2::event::dispatcher::queue_position, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> const&) src/gui/core/event/dispatcher.hpp:729 (wesnoth-debug+0x3baa852)    #8 std::enable_if<boost::mpl::has_key<boost::mpl::set<mpl_::int_<3>, mpl_::int_<4>, mpl_::int_<6>, mpl_::int_<8>, mpl_::int_<9>, mpl_::int_<14>, mpl_::int_<15>, mpl_::int_<20>, mpl_::int_<21>, mpl_::int_<38>, mpl_::int_<41>, mpl_::int_<28>, mpl_::int_<29>, mpl_::int_<26>, mpl_::int_<27>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, mpl_::int_<(gui2::event::ui_event)3> >::value, void>::type gui2::event::dispatcher::connect_signal<(gui2::event::ui_event)3>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> const&, gui2::event::dispatcher::queue_position) src/gui/core/event/dispatcher.hpp:398 (wesnoth-debug+0x3c6535d)    #9 gui2::window::window(gui2::builder_window::window_resolution const*) src/gui/widgets/window.cpp:324 (wesnoth-debug+0x3c40e42)    #10 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee5b)    #11 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #12 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #13 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #14 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #15 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #16 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #17 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #18 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #19 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #20 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #21 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #22 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #23 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #24 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #25 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #26 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #27 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #28 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #29 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #30 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #31 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #32 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #33 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/stl_tree.h:772 in std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)> > > > >::_S_right(std::_Rb_tree_node_base*)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b74000e98c0 by main thread:    #0 __gnu_cxx::__normal_iterator<gui2::grid::child*, std::vector<gui2::grid::child, std::allocator<gui2::grid::child> > >::__normal_iterator(gui2::grid::child* const&) /usr/include/c++/7/bits/stl_iterator.h:780 (wesnoth-debug+0x46c9b86)    #1 std::vector<gui2::grid::child, std::allocator<gui2::grid::child> >::begin() /usr/include/c++/7/bits/stl_vector.h:564 (wesnoth-debug+0x46c6007)    #2 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:59 (wesnoth-debug+0x46c806b)    #3 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #4 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #5 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #6 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #7 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #8 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #9 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #10 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #11 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #12 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #13 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #14 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #15 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #16 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #17 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #18 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #19 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #20 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #21 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #22 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #23 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #24 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #25 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #26 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #27 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #28 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #29 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b74000e98c0 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 2496 at 0x7b74000e9200 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee24)    #2 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #3 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #4 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #5 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #6 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #7 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #8 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #9 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #10 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #11 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #12 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #13 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #14 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #15 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #16 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #17 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #18 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #19 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #20 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #21 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #22 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #23 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #24 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/stl_iterator.h:780 in __gnu_cxx::__normal_iterator<gui2::grid::child*, std::vector<gui2::grid::child, std::allocator<gui2::grid::child> > >::__normal_iterator(gui2::grid::child* const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b74000e98c8 by main thread:    #0 __gnu_cxx::__normal_iterator<gui2::grid::child*, std::vector<gui2::grid::child, std::allocator<gui2::grid::child> > >::__normal_iterator(gui2::grid::child* const&) /usr/include/c++/7/bits/stl_iterator.h:780 (wesnoth-debug+0x46c9b86)    #1 std::vector<gui2::grid::child, std::allocator<gui2::grid::child> >::end() <null> (wesnoth-debug+0x46c6079)    #2 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:59 (wesnoth-debug+0x46c809d)    #3 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #4 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #5 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #6 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #7 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #8 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #9 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #10 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #11 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #12 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #13 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #14 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #15 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #16 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #17 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #18 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #19 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #20 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #21 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #22 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #23 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #24 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #25 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #26 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #27 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #28 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #29 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b74000e98c8 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 2496 at 0x7b74000e9200 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee24)    #2 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #3 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #4 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #5 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #6 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #7 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #8 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #9 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #10 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #11 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #12 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #13 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #14 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #15 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #16 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #17 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #18 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #19 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #20 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #21 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #22 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #23 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #24 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/stl_iterator.h:780 in __gnu_cxx::__normal_iterator<gui2::grid::child*, std::vector<gui2::grid::child, std::allocator<gui2::grid::child> > >::__normal_iterator(gui2::grid::child* const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b08005558c8 by main thread:    #0 std::__uniq_ptr_impl<gui2::widget, std::default_delete<gui2::widget> >::_M_ptr() const /usr/include/c++/7/bits/unique_ptr.h:147 (wesnoth-debug+0x4442263)    #1 std::unique_ptr<gui2::widget, std::default_delete<gui2::widget> >::get() const /usr/include/c++/7/bits/unique_ptr.h:337 (wesnoth-debug+0x44289a0)    #2 gui2::grid::child::get_widget() src/gui/widgets/grid.hpp:407 (wesnoth-debug+0x4423f1a)    #3 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:62 (wesnoth-debug+0x46c8122)    #4 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #5 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #6 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #7 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #8 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #9 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #10 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #11 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #12 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #13 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #14 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #15 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #16 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #17 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #18 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #19 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #20 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #21 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #22 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #23 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #24 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #25 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #26 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #27 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #28 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #29 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #30 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b08005558c8 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 32 at 0x7b08005558c0 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<gui2::grid::child>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x46d03b8)    #2 std::allocator_traits<std::allocator<gui2::grid::child> >::allocate(std::allocator<gui2::grid::child>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x46cf59c)    #3 std::_Vector_base<gui2::grid::child, std::allocator<gui2::grid::child> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172 (wesnoth-debug+0x46ce700)    #4 std::vector<gui2::grid::child, std::allocator<gui2::grid::child> >::_M_default_append(unsigned long) <null> (wesnoth-debug+0x46cc99f)    #5 std::vector<gui2::grid::child, std::allocator<gui2::grid::child> >::resize(unsigned long) <null> (wesnoth-debug+0x46c9134)    #6 gui2::grid::set_rows_cols(unsigned int, unsigned int) src/gui/widgets/grid.cpp:737 (wesnoth-debug+0x46b8a57)    #7 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:457 (wesnoth-debug+0x4236ec3)    #8 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #9 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #10 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #11 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #12 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #13 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #14 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #15 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #16 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #17 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #18 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #19 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #20 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #21 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #22 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #23 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #24 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #25 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #26 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #27 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #28 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #29 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #30 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #31 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #32 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/unique_ptr.h:147 in std::__uniq_ptr_impl<gui2::widget, std::default_delete<gui2::widget> >::_M_ptr() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b7000134800 by main thread:    #0 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c8184)    #1 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #2 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #3 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #4 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #5 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #6 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #7 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #8 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #9 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #10 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #11 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #12 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #13 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #14 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #15 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #16 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #17 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #18 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #19 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #20 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #21 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #22 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #23 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #24 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #25 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #26 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #27 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b7000134800 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1832 at 0x7b7000134800 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:154 (wesnoth-debug+0x3b29a0c)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #4 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #5 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #6 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #7 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #8 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #9 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #10 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #11 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #12 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #13 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #14 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #15 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #16 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #17 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #18 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #19 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #20 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #21 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #22 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #23 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #24 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #25 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #26 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #27 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/grid_private.hpp:67 in gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b7000134f10 by main thread:    #0 gui2::widget* gui2::scrollbar_container_implementation::find_at<gui2::widget>(utils::const_clone<gui2::scrollbar_container, gui2::widget>::reference, point const&, bool) src/gui/widgets/scrollbar_container_private.hpp:62 (wesnoth-debug+0x473627b)    #1 gui2::scrollbar_container::find_at(point const&, bool) src/gui/widgets/scrollbar_container.cpp:475 (wesnoth-debug+0x471433f)    #2 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #3 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #4 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #5 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #6 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #7 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #8 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #9 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #10 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #11 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #12 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #13 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #14 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #15 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #16 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #17 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #18 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #19 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #20 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #21 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #22 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #23 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #24 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #25 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #26 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #27 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #28 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #29 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b7000134f10 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1832 at 0x7b7000134800 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:154 (wesnoth-debug+0x3b29a0c)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #4 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #5 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #6 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #7 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #8 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #9 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #10 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #11 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #12 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #13 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #14 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #15 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #16 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #17 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #18 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #19 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #20 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #21 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #22 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #23 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #24 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #25 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #26 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #27 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/scrollbar_container_private.hpp:62 in gui2::widget* gui2::scrollbar_container_implementation::find_at<gui2::widget>(utils::const_clone<gui2::scrollbar_container, gui2::widget>::reference, point const&, bool)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b7000134f08 by main thread:    #0 std::__uniq_ptr_impl<gui2::grid, std::default_delete<gui2::grid> >::_M_ptr() const /usr/include/c++/7/bits/unique_ptr.h:147 (wesnoth-debug+0x3a490fd)    #1 std::unique_ptr<gui2::grid, std::default_delete<gui2::grid> >::get() const /usr/include/c++/7/bits/unique_ptr.h:337 (wesnoth-debug+0x3a43268)    #2 std::unique_ptr<gui2::grid, std::default_delete<gui2::grid> >::operator bool() const /usr/include/c++/7/bits/unique_ptr.h:351 (wesnoth-debug+0x4736149)    #3 gui2::widget* gui2::scrollbar_container_implementation::find_at<gui2::widget>(utils::const_clone<gui2::scrollbar_container, gui2::widget>::reference, point const&, bool) src/gui/widgets/scrollbar_container_private.hpp:62 (wesnoth-debug+0x47362c0)    #4 gui2::scrollbar_container::find_at(point const&, bool) src/gui/widgets/scrollbar_container.cpp:475 (wesnoth-debug+0x471433f)    #5 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #6 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #7 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #8 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #9 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #10 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #11 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #12 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #13 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #14 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #15 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #16 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #17 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #18 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #19 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #20 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #21 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #22 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #23 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #24 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #25 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #26 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #27 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #28 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #29 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #30 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #31 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #32 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b7000134f08 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1832 at 0x7b7000134800 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:154 (wesnoth-debug+0x3b29a0c)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #4 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #5 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #6 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #7 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #8 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #9 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #10 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #11 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #12 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #13 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #14 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #15 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #16 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #17 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #18 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #19 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #20 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #21 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #22 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #23 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #24 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #25 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #26 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #27 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/unique_ptr.h:147 in std::__uniq_ptr_impl<gui2::grid, std::default_delete<gui2::grid> >::_M_ptr() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b7000134bf8 by main thread:    #0 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391be3)    #1 gui2::widget* gui2::scrollbar_container_implementation::find_at<gui2::widget>(utils::const_clone<gui2::scrollbar_container, gui2::widget>::reference, point const&, bool) src/gui/widgets/scrollbar_container_private.hpp:65 (wesnoth-debug+0x47363d3)    #2 gui2::scrollbar_container::find_at(point const&, bool) src/gui/widgets/scrollbar_container.cpp:475 (wesnoth-debug+0x471433f)    #3 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #4 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #5 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #6 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #7 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #8 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #9 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #10 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #11 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #12 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #13 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #14 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #15 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #16 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #17 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #18 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #19 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #20 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #21 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #22 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #23 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #24 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #25 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #26 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #27 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #28 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #29 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #30 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b7000134bf8 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1832 at 0x7b7000134800 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:154 (wesnoth-debug+0x3b29a0c)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #4 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #5 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #6 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #7 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #8 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #9 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #10 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #11 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #12 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #13 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #14 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #15 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #16 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #17 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #18 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #19 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #20 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #21 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #22 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #23 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #24 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #25 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #26 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #27 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/container_base.cpp:223 in gui2::container_base::find_at(point const&, bool)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b7000134ec0 by main thread:    #0 __gnu_cxx::__normal_iterator<gui2::grid::child*, std::vector<gui2::grid::child, std::allocator<gui2::grid::child> > >::__normal_iterator(gui2::grid::child* const&) /usr/include/c++/7/bits/stl_iterator.h:780 (wesnoth-debug+0x46c9b86)    #1 std::vector<gui2::grid::child, std::allocator<gui2::grid::child> >::begin() /usr/include/c++/7/bits/stl_vector.h:564 (wesnoth-debug+0x46c6007)    #2 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:59 (wesnoth-debug+0x46c806b)    #3 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #4 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #5 gui2::widget* gui2::scrollbar_container_implementation::find_at<gui2::widget>(utils::const_clone<gui2::scrollbar_container, gui2::widget>::reference, point const&, bool) src/gui/widgets/scrollbar_container_private.hpp:65 (wesnoth-debug+0x47363d3)    #6 gui2::scrollbar_container::find_at(point const&, bool) src/gui/widgets/scrollbar_container.cpp:475 (wesnoth-debug+0x471433f)    #7 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #8 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #9 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #10 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #11 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #12 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #13 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #14 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #15 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #16 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #17 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #18 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #19 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #20 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #21 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #22 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #23 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #24 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #25 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #26 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #27 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #28 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #29 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #30 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #31 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #32 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #33 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #34 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b7000134ec0 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1832 at 0x7b7000134800 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:154 (wesnoth-debug+0x3b29a0c)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #4 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #5 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #6 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #7 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #8 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #9 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #10 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #11 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #12 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #13 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #14 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #15 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #16 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #17 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #18 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #19 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #20 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #21 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #22 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #23 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #24 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #25 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #26 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #27 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/stl_iterator.h:780 in __gnu_cxx::__normal_iterator<gui2::grid::child*, std::vector<gui2::grid::child, std::allocator<gui2::grid::child> > >::__normal_iterator(gui2::grid::child* const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b7000134ec8 by main thread:    #0 __gnu_cxx::__normal_iterator<gui2::grid::child*, std::vector<gui2::grid::child, std::allocator<gui2::grid::child> > >::__normal_iterator(gui2::grid::child* const&) /usr/include/c++/7/bits/stl_iterator.h:780 (wesnoth-debug+0x46c9b86)    #1 std::vector<gui2::grid::child, std::allocator<gui2::grid::child> >::end() <null> (wesnoth-debug+0x46c6079)    #2 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:59 (wesnoth-debug+0x46c809d)    #3 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #4 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #5 gui2::widget* gui2::scrollbar_container_implementation::find_at<gui2::widget>(utils::const_clone<gui2::scrollbar_container, gui2::widget>::reference, point const&, bool) src/gui/widgets/scrollbar_container_private.hpp:65 (wesnoth-debug+0x47363d3)    #6 gui2::scrollbar_container::find_at(point const&, bool) src/gui/widgets/scrollbar_container.cpp:475 (wesnoth-debug+0x471433f)    #7 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #8 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #9 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #10 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #11 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #12 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #13 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #14 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #15 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #16 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #17 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #18 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #19 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #20 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #21 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #22 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #23 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #24 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #25 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #26 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #27 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #28 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #29 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #30 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #31 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #32 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #33 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #34 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b7000134ec8 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1832 at 0x7b7000134800 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:154 (wesnoth-debug+0x3b29a0c)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #4 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #5 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #6 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #7 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #8 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #9 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #10 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #11 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #12 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #13 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #14 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #15 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #16 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #17 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #18 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #19 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #20 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #21 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #22 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #23 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #24 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #25 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #26 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #27 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/stl_iterator.h:780 in __gnu_cxx::__normal_iterator<gui2::grid::child*, std::vector<gui2::grid::child, std::allocator<gui2::grid::child> > >::__normal_iterator(gui2::grid::child* const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b100019f388 by main thread:    #0 std::__uniq_ptr_impl<gui2::widget, std::default_delete<gui2::widget> >::_M_ptr() const /usr/include/c++/7/bits/unique_ptr.h:147 (wesnoth-debug+0x4442263)    #1 std::unique_ptr<gui2::widget, std::default_delete<gui2::widget> >::get() const /usr/include/c++/7/bits/unique_ptr.h:337 (wesnoth-debug+0x44289a0)    #2 gui2::grid::child::get_widget() src/gui/widgets/grid.hpp:407 (wesnoth-debug+0x4423f1a)    #3 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:62 (wesnoth-debug+0x46c8122)    #4 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #5 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #6 gui2::widget* gui2::scrollbar_container_implementation::find_at<gui2::widget>(utils::const_clone<gui2::scrollbar_container, gui2::widget>::reference, point const&, bool) src/gui/widgets/scrollbar_container_private.hpp:65 (wesnoth-debug+0x47363d3)    #7 gui2::scrollbar_container::find_at(point const&, bool) src/gui/widgets/scrollbar_container.cpp:475 (wesnoth-debug+0x471433f)    #8 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #9 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #10 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #11 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #12 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #13 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #14 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #15 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #16 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #17 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #18 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #19 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #20 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #21 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #22 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #23 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #24 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #25 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #26 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #27 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #28 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #29 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #30 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #31 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #32 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #33 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #34 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #35 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b100019f388 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 64 at 0x7b100019f380 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<gui2::grid::child>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x46d03b8)    #2 std::allocator_traits<std::allocator<gui2::grid::child> >::allocate(std::allocator<gui2::grid::child>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x46cf59c)    #3 std::_Vector_base<gui2::grid::child, std::allocator<gui2::grid::child> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172 (wesnoth-debug+0x46ce700)    #4 std::vector<gui2::grid::child, std::allocator<gui2::grid::child> >::_M_default_append(unsigned long) <null> (wesnoth-debug+0x46cc99f)    #5 std::vector<gui2::grid::child, std::allocator<gui2::grid::child> >::resize(unsigned long) <null> (wesnoth-debug+0x46c9134)    #6 gui2::grid::set_rows_cols(unsigned int, unsigned int) src/gui/widgets/grid.cpp:737 (wesnoth-debug+0x46b8a57)    #7 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:457 (wesnoth-debug+0x4236ec3)    #8 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #9 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:165 (wesnoth-debug+0x3b2a11d)    #10 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #11 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #12 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #13 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #14 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #15 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #16 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #17 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #18 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #19 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #20 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #21 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #22 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #23 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #24 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #25 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #26 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #27 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #28 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #29 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #30 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #31 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #32 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #33 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #34 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #35 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/unique_ptr.h:147 in std::__uniq_ptr_impl<gui2::widget, std::default_delete<gui2::widget> >::_M_ptr() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b64000f9600 by main thread:    #0 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c8184)    #1 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #2 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #3 gui2::widget* gui2::scrollbar_container_implementation::find_at<gui2::widget>(utils::const_clone<gui2::scrollbar_container, gui2::widget>::reference, point const&, bool) src/gui/widgets/scrollbar_container_private.hpp:65 (wesnoth-debug+0x47363d3)    #4 gui2::scrollbar_container::find_at(point const&, bool) src/gui/widgets/scrollbar_container.cpp:475 (wesnoth-debug+0x471433f)    #5 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #6 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #7 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #8 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #9 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #10 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #11 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #12 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #13 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #14 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #15 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #16 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #17 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #18 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #19 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #20 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #21 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #22 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #23 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #24 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #25 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #26 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #27 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #28 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #29 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #30 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #31 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #32 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b64000f9600 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1096 at 0x7b64000f9600 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_spacer::build() const src/gui/widgets/spacer.cpp:182 (wesnoth-debug+0x3b78cee)    #2 gui2::build_single_widget_instance_helper(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config const&) src/gui/core/window_builder.cpp:143 (wesnoth-debug+0x4231433)    #3 gui2::spacer* gui2::build_single_widget_instance<gui2::spacer>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config const&) src/gui/core/window_builder.hpp:108 (wesnoth-debug+0x4738613)    #4 gui2::scrollbar_container::finalize_setup() src/gui/widgets/scrollbar_container.cpp:762 (wesnoth-debug+0x4721dde)    #5 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:166 (wesnoth-debug+0x3b2a202)    #6 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #7 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #8 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #9 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #10 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #11 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #12 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #13 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #14 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #15 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #16 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #17 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #18 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #19 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #20 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #21 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #22 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #23 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #24 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #25 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #26 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #27 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #28 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #29 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #30 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #31 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/grid_private.hpp:67 in gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 4 at 0x7b64000f983c by main thread:    #0 gui2::widget::recursive_is_visible(gui2::widget const*, bool) const src/gui/widgets/widget.cpp:605 (wesnoth-debug+0x47d0038)    #1 gui2::widget::is_at(point const&, bool) const src/gui/widgets/widget.cpp:618 (wesnoth-debug+0x47d037e)    #2 gui2::widget::find_at(point const&, bool) src/gui/widgets/widget.cpp:572 (wesnoth-debug+0x47cfae4)    #3 gui2::styled_widget::find_at(point const&, bool) src/gui/widgets/styled_widget.cpp:291 (wesnoth-debug+0x4760da1)    #4 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #5 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #6 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #7 gui2::widget* gui2::scrollbar_container_implementation::find_at<gui2::widget>(utils::const_clone<gui2::scrollbar_container, gui2::widget>::reference, point const&, bool) src/gui/widgets/scrollbar_container_private.hpp:65 (wesnoth-debug+0x47363d3)    #8 gui2::scrollbar_container::find_at(point const&, bool) src/gui/widgets/scrollbar_container.cpp:475 (wesnoth-debug+0x471433f)    #9 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #10 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #11 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #12 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #13 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #14 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #15 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #16 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #17 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #18 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #19 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #20 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #21 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #22 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #23 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #24 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #25 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #26 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #27 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #28 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #29 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #30 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #31 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #32 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #33 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #34 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #35 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #36 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b64000f9838 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1096 at 0x7b64000f9600 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_spacer::build() const src/gui/widgets/spacer.cpp:182 (wesnoth-debug+0x3b78cee)    #2 gui2::build_single_widget_instance_helper(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config const&) src/gui/core/window_builder.cpp:143 (wesnoth-debug+0x4231433)    #3 gui2::spacer* gui2::build_single_widget_instance<gui2::spacer>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config const&) src/gui/core/window_builder.hpp:108 (wesnoth-debug+0x4738613)    #4 gui2::scrollbar_container::finalize_setup() src/gui/widgets/scrollbar_container.cpp:762 (wesnoth-debug+0x4721dde)    #5 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:166 (wesnoth-debug+0x3b2a202)    #6 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #7 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #8 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #9 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #10 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #11 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #12 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #13 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #14 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #15 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #16 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #17 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #18 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #19 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #20 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #21 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #22 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #23 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #24 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #25 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #26 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #27 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #28 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #29 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #30 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #31 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:605 in gui2::widget::recursive_is_visible(gui2::widget const*, bool) const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b64000f97f8 by main thread:    #0 gui2::widget::recursive_is_visible(gui2::widget const*, bool) const src/gui/widgets/widget.cpp:610 (wesnoth-debug+0x47d023a)    #1 gui2::widget::is_at(point const&, bool) const src/gui/widgets/widget.cpp:618 (wesnoth-debug+0x47d037e)    #2 gui2::widget::find_at(point const&, bool) src/gui/widgets/widget.cpp:572 (wesnoth-debug+0x47cfae4)    #3 gui2::styled_widget::find_at(point const&, bool) src/gui/widgets/styled_widget.cpp:291 (wesnoth-debug+0x4760da1)    #4 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #5 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #6 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #7 gui2::widget* gui2::scrollbar_container_implementation::find_at<gui2::widget>(utils::const_clone<gui2::scrollbar_container, gui2::widget>::reference, point const&, bool) src/gui/widgets/scrollbar_container_private.hpp:65 (wesnoth-debug+0x47363d3)    #8 gui2::scrollbar_container::find_at(point const&, bool) src/gui/widgets/scrollbar_container.cpp:475 (wesnoth-debug+0x471433f)    #9 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #10 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #11 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #12 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #13 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #14 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #15 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #16 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #17 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #18 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #19 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #20 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #21 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #22 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #23 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #24 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #25 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #26 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #27 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #28 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #29 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #30 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #31 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #32 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #33 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #34 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #35 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #36 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b64000f97f8 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1096 at 0x7b64000f9600 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_spacer::build() const src/gui/widgets/spacer.cpp:182 (wesnoth-debug+0x3b78cee)    #2 gui2::build_single_widget_instance_helper(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config const&) src/gui/core/window_builder.cpp:143 (wesnoth-debug+0x4231433)    #3 gui2::spacer* gui2::build_single_widget_instance<gui2::spacer>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config const&) src/gui/core/window_builder.hpp:108 (wesnoth-debug+0x4738613)    #4 gui2::scrollbar_container::finalize_setup() src/gui/widgets/scrollbar_container.cpp:762 (wesnoth-debug+0x4721dde)    #5 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:166 (wesnoth-debug+0x3b2a202)    #6 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #7 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #8 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #9 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #10 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #11 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #12 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #13 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #14 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #15 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #16 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #17 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #18 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #19 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #20 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #21 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #22 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #23 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #24 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #25 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #26 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #27 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #28 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #29 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #30 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #31 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:610 in gui2::widget::recursive_is_visible(gui2::widget const*, bool) const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 4 at 0x7b64000f980c by main thread:    #0 gui2::widget::get_size() const src/gui/widgets/widget.cpp:304 (wesnoth-debug+0x47ca488)    #1 gui2::widget::get_rectangle() const src/gui/widgets/widget.cpp:309 (wesnoth-debug+0x47ca6e0)    #2 gui2::widget::is_at(point const&, bool) const src/gui/widgets/widget.cpp:622 (wesnoth-debug+0x47d0483)    #3 gui2::widget::find_at(point const&, bool) src/gui/widgets/widget.cpp:572 (wesnoth-debug+0x47cfae4)    #4 gui2::styled_widget::find_at(point const&, bool) src/gui/widgets/styled_widget.cpp:291 (wesnoth-debug+0x4760da1)    #5 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #6 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #7 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #8 gui2::widget* gui2::scrollbar_container_implementation::find_at<gui2::widget>(utils::const_clone<gui2::scrollbar_container, gui2::widget>::reference, point const&, bool) src/gui/widgets/scrollbar_container_private.hpp:65 (wesnoth-debug+0x47363d3)    #9 gui2::scrollbar_container::find_at(point const&, bool) src/gui/widgets/scrollbar_container.cpp:475 (wesnoth-debug+0x471433f)    #10 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #11 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #12 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #13 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #14 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #15 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #16 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #17 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #18 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #19 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #20 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #21 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #22 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #23 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #24 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #25 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #26 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #27 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #28 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #29 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #30 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #31 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #32 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #33 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #34 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #35 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #36 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #37 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b64000f9808 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1096 at 0x7b64000f9600 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_spacer::build() const src/gui/widgets/spacer.cpp:182 (wesnoth-debug+0x3b78cee)    #2 gui2::build_single_widget_instance_helper(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config const&) src/gui/core/window_builder.cpp:143 (wesnoth-debug+0x4231433)    #3 gui2::spacer* gui2::build_single_widget_instance<gui2::spacer>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config const&) src/gui/core/window_builder.hpp:108 (wesnoth-debug+0x4738613)    #4 gui2::scrollbar_container::finalize_setup() src/gui/widgets/scrollbar_container.cpp:762 (wesnoth-debug+0x4721dde)    #5 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:166 (wesnoth-debug+0x3b2a202)    #6 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #7 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #8 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #9 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #10 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #11 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #12 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #13 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #14 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #15 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #16 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #17 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #18 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #19 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #20 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #21 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #22 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #23 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #24 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #25 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #26 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #27 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #28 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #29 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #30 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #31 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:304 in gui2::widget::get_size() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 4 at 0x7b64000f9804 by main thread:    #0 gui2::widget::get_origin() const src/gui/widgets/widget.cpp:299 (wesnoth-debug+0x47ca232)    #1 gui2::widget::get_rectangle() const src/gui/widgets/widget.cpp:309 (wesnoth-debug+0x47ca7fe)    #2 gui2::widget::is_at(point const&, bool) const src/gui/widgets/widget.cpp:622 (wesnoth-debug+0x47d0483)    #3 gui2::widget::find_at(point const&, bool) src/gui/widgets/widget.cpp:572 (wesnoth-debug+0x47cfae4)    #4 gui2::styled_widget::find_at(point const&, bool) src/gui/widgets/styled_widget.cpp:291 (wesnoth-debug+0x4760da1)    #5 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #6 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #7 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #8 gui2::widget* gui2::scrollbar_container_implementation::find_at<gui2::widget>(utils::const_clone<gui2::scrollbar_container, gui2::widget>::reference, point const&, bool) src/gui/widgets/scrollbar_container_private.hpp:65 (wesnoth-debug+0x47363d3)    #9 gui2::scrollbar_container::find_at(point const&, bool) src/gui/widgets/scrollbar_container.cpp:475 (wesnoth-debug+0x471433f)    #10 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #11 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #12 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #13 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #14 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #15 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #16 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #17 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #18 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #19 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #20 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #21 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #22 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #23 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #24 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #25 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #26 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #27 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #28 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #29 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #30 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #31 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #32 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #33 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #34 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #35 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #36 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #37 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b64000f9800 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1096 at 0x7b64000f9600 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_spacer::build() const src/gui/widgets/spacer.cpp:182 (wesnoth-debug+0x3b78cee)    #2 gui2::build_single_widget_instance_helper(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config const&) src/gui/core/window_builder.cpp:143 (wesnoth-debug+0x4231433)    #3 gui2::spacer* gui2::build_single_widget_instance<gui2::spacer>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, config const&) src/gui/core/window_builder.hpp:108 (wesnoth-debug+0x4738613)    #4 gui2::scrollbar_container::finalize_setup() src/gui/widgets/scrollbar_container.cpp:762 (wesnoth-debug+0x4721dde)    #5 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:166 (wesnoth-debug+0x3b2a202)    #6 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #7 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #8 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #9 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #10 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #11 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #12 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #13 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #14 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #15 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #16 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #17 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #18 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #19 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #20 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #21 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #22 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #23 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #24 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #25 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #26 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #27 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #28 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #29 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #30 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #31 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:299 in gui2::widget::get_origin() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b58000cf8c8 by main thread:    #0 __gnu_cxx::__normal_iterator<gui2::grid::child*, std::vector<gui2::grid::child, std::allocator<gui2::grid::child> > >::__normal_iterator(gui2::grid::child* const&) /usr/include/c++/7/bits/stl_iterator.h:780 (wesnoth-debug+0x46c9b86)    #1 std::vector<gui2::grid::child, std::allocator<gui2::grid::child> >::begin() /usr/include/c++/7/bits/stl_vector.h:564 (wesnoth-debug+0x46c6007)    #2 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:59 (wesnoth-debug+0x46c806b)    #3 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #4 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #5 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #6 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #7 gui2::widget* gui2::scrollbar_container_implementation::find_at<gui2::widget>(utils::const_clone<gui2::scrollbar_container, gui2::widget>::reference, point const&, bool) src/gui/widgets/scrollbar_container_private.hpp:65 (wesnoth-debug+0x47363d3)    #8 gui2::scrollbar_container::find_at(point const&, bool) src/gui/widgets/scrollbar_container.cpp:475 (wesnoth-debug+0x471433f)    #9 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #10 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #11 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #12 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #13 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #14 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #15 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #16 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #17 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #18 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #19 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #20 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #21 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #22 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #23 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #24 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #25 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #26 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #27 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #28 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #29 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #30 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #31 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #32 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #33 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #34 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #35 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #36 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b58000cf8c8 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 736 at 0x7b58000cf600 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x423678a)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #4 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:165 (wesnoth-debug+0x3b2a11d)    #5 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #6 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #7 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #8 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #9 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #10 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #11 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #12 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #13 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #14 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #15 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #16 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #17 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #18 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #19 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #20 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #21 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #22 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #23 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #24 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #25 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #26 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #27 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #28 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #29 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #30 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/stl_iterator.h:780 in __gnu_cxx::__normal_iterator<gui2::grid::child*, std::vector<gui2::grid::child, std::allocator<gui2::grid::child> > >::__normal_iterator(gui2::grid::child* const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b58000cf8d0 by main thread:    #0 __gnu_cxx::__normal_iterator<gui2::grid::child*, std::vector<gui2::grid::child, std::allocator<gui2::grid::child> > >::__normal_iterator(gui2::grid::child* const&) /usr/include/c++/7/bits/stl_iterator.h:780 (wesnoth-debug+0x46c9b86)    #1 std::vector<gui2::grid::child, std::allocator<gui2::grid::child> >::end() <null> (wesnoth-debug+0x46c6079)    #2 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:59 (wesnoth-debug+0x46c809d)    #3 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #4 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #5 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #6 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #7 gui2::widget* gui2::scrollbar_container_implementation::find_at<gui2::widget>(utils::const_clone<gui2::scrollbar_container, gui2::widget>::reference, point const&, bool) src/gui/widgets/scrollbar_container_private.hpp:65 (wesnoth-debug+0x47363d3)    #8 gui2::scrollbar_container::find_at(point const&, bool) src/gui/widgets/scrollbar_container.cpp:475 (wesnoth-debug+0x471433f)    #9 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #10 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #11 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #12 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #13 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #14 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #15 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #16 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #17 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #18 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #19 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #20 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #21 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #22 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #23 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #24 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #25 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #26 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #27 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #28 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #29 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #30 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #31 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #32 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #33 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #34 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #35 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #36 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b58000cf8d0 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 736 at 0x7b58000cf600 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x423678a)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #4 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:165 (wesnoth-debug+0x3b2a11d)    #5 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #6 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #7 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #8 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #9 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #10 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #11 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #12 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #13 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #14 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #15 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #16 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #17 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #18 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #19 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #20 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #21 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #22 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #23 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #24 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #25 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #26 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #27 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #28 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #29 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #30 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/stl_iterator.h:780 in __gnu_cxx::__normal_iterator<gui2::grid::child*, std::vector<gui2::grid::child, std::allocator<gui2::grid::child> > >::__normal_iterator(gui2::grid::child* const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b04000c7e48 by main thread:    #0 std::__uniq_ptr_impl<gui2::widget, std::default_delete<gui2::widget> >::_M_ptr() const /usr/include/c++/7/bits/unique_ptr.h:147 (wesnoth-debug+0x4442263)    #1 std::unique_ptr<gui2::widget, std::default_delete<gui2::widget> >::get() const /usr/include/c++/7/bits/unique_ptr.h:337 (wesnoth-debug+0x44289a0)    #2 gui2::grid::child::get_widget() src/gui/widgets/grid.hpp:407 (wesnoth-debug+0x4423f1a)    #3 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:62 (wesnoth-debug+0x46c8122)    #4 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #5 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #6 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #7 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #8 gui2::widget* gui2::scrollbar_container_implementation::find_at<gui2::widget>(utils::const_clone<gui2::scrollbar_container, gui2::widget>::reference, point const&, bool) src/gui/widgets/scrollbar_container_private.hpp:65 (wesnoth-debug+0x47363d3)    #9 gui2::scrollbar_container::find_at(point const&, bool) src/gui/widgets/scrollbar_container.cpp:475 (wesnoth-debug+0x471433f)    #10 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #11 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #12 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #13 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #14 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #15 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #16 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #17 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #18 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #19 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #20 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #21 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #22 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #23 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #24 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #25 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #26 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #27 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #28 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #29 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #30 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #31 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #32 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #33 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #34 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #35 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #36 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #37 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b04000c7e48 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 16 at 0x7b04000c7e40 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<gui2::grid::child>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x46d03b8)    #2 std::allocator_traits<std::allocator<gui2::grid::child> >::allocate(std::allocator<gui2::grid::child>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x46cf59c)    #3 std::_Vector_base<gui2::grid::child, std::allocator<gui2::grid::child> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172 (wesnoth-debug+0x46ce700)    #4 std::vector<gui2::grid::child, std::allocator<gui2::grid::child> >::_M_default_append(unsigned long) <null> (wesnoth-debug+0x46cc99f)    #5 std::vector<gui2::grid::child, std::allocator<gui2::grid::child> >::resize(unsigned long) <null> (wesnoth-debug+0x46c9134)    #6 gui2::grid::set_rows_cols(unsigned int, unsigned int) src/gui/widgets/grid.cpp:737 (wesnoth-debug+0x46b8a57)    #7 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:457 (wesnoth-debug+0x4236ec3)    #8 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #9 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #10 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #11 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:165 (wesnoth-debug+0x3b2a11d)    #12 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #13 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #14 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #15 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #16 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #17 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #18 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #19 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #20 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #21 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #22 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #23 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #24 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #25 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #26 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #27 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #28 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #29 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #30 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #31 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #32 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #33 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #34 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #35 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #36 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #37 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/unique_ptr.h:147 in std::__uniq_ptr_impl<gui2::widget, std::default_delete<gui2::widget> >::_M_ptr() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b64000f8700 by main thread:    #0 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c8184)    #1 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #2 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #3 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #4 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #5 gui2::widget* gui2::scrollbar_container_implementation::find_at<gui2::widget>(utils::const_clone<gui2::scrollbar_container, gui2::widget>::reference, point const&, bool) src/gui/widgets/scrollbar_container_private.hpp:65 (wesnoth-debug+0x47363d3)    #6 gui2::scrollbar_container::find_at(point const&, bool) src/gui/widgets/scrollbar_container.cpp:475 (wesnoth-debug+0x471433f)    #7 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #8 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #9 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #10 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #11 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #12 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #13 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #14 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #15 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #16 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #17 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #18 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #19 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #20 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #21 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #22 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #23 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #24 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #25 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #26 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #27 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #28 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #29 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #30 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #31 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #32 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #33 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #34 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b64000f8700 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1056 at 0x7b64000f8700 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_horizontal_scrollbar::build() const src/gui/widgets/horizontal_scrollbar.cpp:219 (wesnoth-debug+0x39ebacc)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #4 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #5 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #6 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:165 (wesnoth-debug+0x3b2a11d)    #7 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #8 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #9 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #10 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #11 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #12 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #13 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #14 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #15 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #16 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #17 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #18 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #19 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #20 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #21 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #22 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #23 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #24 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #25 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #26 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #27 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #28 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #29 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #30 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #31 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #32 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/grid_private.hpp:67 in gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 4 at 0x7b64000f893c by main thread:    #0 gui2::widget::recursive_is_visible(gui2::widget const*, bool) const src/gui/widgets/widget.cpp:605 (wesnoth-debug+0x47d0038)    #1 gui2::widget::is_at(point const&, bool) const src/gui/widgets/widget.cpp:618 (wesnoth-debug+0x47d037e)    #2 gui2::widget::find_at(point const&, bool) src/gui/widgets/widget.cpp:572 (wesnoth-debug+0x47cfae4)    #3 gui2::styled_widget::find_at(point const&, bool) src/gui/widgets/styled_widget.cpp:291 (wesnoth-debug+0x4760da1)    #4 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #5 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #6 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #7 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #8 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #9 gui2::widget* gui2::scrollbar_container_implementation::find_at<gui2::widget>(utils::const_clone<gui2::scrollbar_container, gui2::widget>::reference, point const&, bool) src/gui/widgets/scrollbar_container_private.hpp:65 (wesnoth-debug+0x47363d3)    #10 gui2::scrollbar_container::find_at(point const&, bool) src/gui/widgets/scrollbar_container.cpp:475 (wesnoth-debug+0x471433f)    #11 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #12 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #13 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #14 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #15 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #16 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #17 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #18 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #19 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #20 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #21 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #22 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #23 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #24 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #25 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #26 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #27 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #28 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #29 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #30 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #31 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #32 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #33 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #34 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #35 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #36 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #37 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #38 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b64000f8938 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1056 at 0x7b64000f8700 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_horizontal_scrollbar::build() const src/gui/widgets/horizontal_scrollbar.cpp:219 (wesnoth-debug+0x39ebacc)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #4 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #5 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #6 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:165 (wesnoth-debug+0x3b2a11d)    #7 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #8 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #9 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #10 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #11 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #12 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #13 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #14 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #15 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #16 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #17 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #18 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #19 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #20 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #21 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #22 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #23 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #24 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #25 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #26 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #27 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #28 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #29 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #30 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #31 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #32 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:605 in gui2::widget::recursive_is_visible(gui2::widget const*, bool) const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b64000f88f8 by main thread:    #0 gui2::widget::recursive_is_visible(gui2::widget const*, bool) const src/gui/widgets/widget.cpp:610 (wesnoth-debug+0x47d023a)    #1 gui2::widget::is_at(point const&, bool) const src/gui/widgets/widget.cpp:618 (wesnoth-debug+0x47d037e)    #2 gui2::widget::find_at(point const&, bool) src/gui/widgets/widget.cpp:572 (wesnoth-debug+0x47cfae4)    #3 gui2::styled_widget::find_at(point const&, bool) src/gui/widgets/styled_widget.cpp:291 (wesnoth-debug+0x4760da1)    #4 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #5 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #6 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #7 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #8 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #9 gui2::widget* gui2::scrollbar_container_implementation::find_at<gui2::widget>(utils::const_clone<gui2::scrollbar_container, gui2::widget>::reference, point const&, bool) src/gui/widgets/scrollbar_container_private.hpp:65 (wesnoth-debug+0x47363d3)    #10 gui2::scrollbar_container::find_at(point const&, bool) src/gui/widgets/scrollbar_container.cpp:475 (wesnoth-debug+0x471433f)    #11 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #12 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #13 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #14 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #15 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #16 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #17 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #18 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #19 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #20 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #21 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #22 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #23 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #24 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #25 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #26 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #27 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #28 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #29 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #30 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #31 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #32 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #33 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #34 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #35 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #36 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #37 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #38 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b64000f88f8 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1056 at 0x7b64000f8700 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_horizontal_scrollbar::build() const src/gui/widgets/horizontal_scrollbar.cpp:219 (wesnoth-debug+0x39ebacc)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #4 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #5 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #6 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:165 (wesnoth-debug+0x3b2a11d)    #7 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #8 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #9 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #10 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #11 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #12 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #13 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #14 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #15 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #16 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #17 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #18 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #19 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #20 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #21 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #22 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #23 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #24 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #25 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #26 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #27 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #28 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #29 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #30 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #31 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #32 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:610 in gui2::widget::recursive_is_visible(gui2::widget const*, bool) const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 4 at 0x7b64000f890c by main thread:    #0 gui2::widget::get_size() const src/gui/widgets/widget.cpp:304 (wesnoth-debug+0x47ca488)    #1 gui2::widget::get_rectangle() const src/gui/widgets/widget.cpp:309 (wesnoth-debug+0x47ca6e0)    #2 gui2::widget::is_at(point const&, bool) const src/gui/widgets/widget.cpp:622 (wesnoth-debug+0x47d0483)    #3 gui2::widget::find_at(point const&, bool) src/gui/widgets/widget.cpp:572 (wesnoth-debug+0x47cfae4)    #4 gui2::styled_widget::find_at(point const&, bool) src/gui/widgets/styled_widget.cpp:291 (wesnoth-debug+0x4760da1)    #5 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #6 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #7 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #8 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #9 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #10 gui2::widget* gui2::scrollbar_container_implementation::find_at<gui2::widget>(utils::const_clone<gui2::scrollbar_container, gui2::widget>::reference, point const&, bool) src/gui/widgets/scrollbar_container_private.hpp:65 (wesnoth-debug+0x47363d3)    #11 gui2::scrollbar_container::find_at(point const&, bool) src/gui/widgets/scrollbar_container.cpp:475 (wesnoth-debug+0x471433f)    #12 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #13 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #14 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #15 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #16 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #17 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #18 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #19 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #20 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #21 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #22 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #23 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #24 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #25 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #26 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #27 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #28 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #29 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #30 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #31 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #32 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #33 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #34 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #35 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #36 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #37 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #38 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #39 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b64000f8908 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1056 at 0x7b64000f8700 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_horizontal_scrollbar::build() const src/gui/widgets/horizontal_scrollbar.cpp:219 (wesnoth-debug+0x39ebacc)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #4 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #5 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #6 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:165 (wesnoth-debug+0x3b2a11d)    #7 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #8 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #9 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #10 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #11 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #12 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #13 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #14 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #15 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #16 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #17 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #18 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #19 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #20 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #21 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #22 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #23 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #24 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #25 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #26 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #27 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #28 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #29 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #30 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #31 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #32 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:304 in gui2::widget::get_size() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 4 at 0x7b64000f8904 by main thread:    #0 gui2::widget::get_origin() const src/gui/widgets/widget.cpp:299 (wesnoth-debug+0x47ca232)    #1 gui2::widget::get_rectangle() const src/gui/widgets/widget.cpp:309 (wesnoth-debug+0x47ca7fe)    #2 gui2::widget::is_at(point const&, bool) const src/gui/widgets/widget.cpp:622 (wesnoth-debug+0x47d0483)    #3 gui2::widget::find_at(point const&, bool) src/gui/widgets/widget.cpp:572 (wesnoth-debug+0x47cfae4)    #4 gui2::styled_widget::find_at(point const&, bool) src/gui/widgets/styled_widget.cpp:291 (wesnoth-debug+0x4760da1)    #5 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #6 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #7 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #8 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #9 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #10 gui2::widget* gui2::scrollbar_container_implementation::find_at<gui2::widget>(utils::const_clone<gui2::scrollbar_container, gui2::widget>::reference, point const&, bool) src/gui/widgets/scrollbar_container_private.hpp:65 (wesnoth-debug+0x47363d3)    #11 gui2::scrollbar_container::find_at(point const&, bool) src/gui/widgets/scrollbar_container.cpp:475 (wesnoth-debug+0x471433f)    #12 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #13 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #14 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #15 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #16 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #17 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #18 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #19 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #20 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #21 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #22 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #23 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #24 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #25 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #26 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #27 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #28 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #29 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #30 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #31 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #32 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #33 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #34 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #35 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #36 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #37 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #38 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #39 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b64000f8900 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1056 at 0x7b64000f8700 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_horizontal_scrollbar::build() const src/gui/widgets/horizontal_scrollbar.cpp:219 (wesnoth-debug+0x39ebacc)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #4 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #5 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #6 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:165 (wesnoth-debug+0x3b2a11d)    #7 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #8 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #9 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #10 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #11 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #12 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #13 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #14 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #15 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #16 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #17 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #18 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #19 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #20 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #21 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #22 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #23 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #24 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #25 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #26 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #27 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #28 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #29 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #30 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #31 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #32 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:299 in gui2::widget::get_origin() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 4 at 0x7b7000134a0c by main thread:    #0 gui2::widget::get_size() const src/gui/widgets/widget.cpp:304 (wesnoth-debug+0x47ca488)    #1 gui2::widget::get_rectangle() const src/gui/widgets/widget.cpp:309 (wesnoth-debug+0x47ca6e0)    #2 gui2::widget::is_at(point const&, bool) const src/gui/widgets/widget.cpp:622 (wesnoth-debug+0x47d0483)    #3 gui2::widget::find_at(point const&, bool) src/gui/widgets/widget.cpp:572 (wesnoth-debug+0x47cfae4)    #4 gui2::scrollbar_container::find_at(point const&, bool) src/gui/widgets/scrollbar_container.cpp:477 (wesnoth-debug+0x471443e)    #5 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #6 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #7 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #8 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #9 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #10 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #11 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #12 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #13 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #14 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #15 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #16 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #17 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #18 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #19 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #20 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #21 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #22 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #23 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #24 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #25 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #26 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #27 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #28 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #29 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #30 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #31 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #32 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b7000134a08 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1832 at 0x7b7000134800 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:154 (wesnoth-debug+0x3b29a0c)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #4 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #5 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #6 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #7 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #8 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #9 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #10 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #11 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #12 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #13 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #14 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #15 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #16 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #17 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #18 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #19 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #20 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #21 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #22 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #23 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #24 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #25 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #26 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #27 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:304 in gui2::widget::get_size() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 4 at 0x7b7000134a04 by main thread:    #0 gui2::widget::get_origin() const src/gui/widgets/widget.cpp:299 (wesnoth-debug+0x47ca232)    #1 gui2::widget::get_rectangle() const src/gui/widgets/widget.cpp:309 (wesnoth-debug+0x47ca7fe)    #2 gui2::widget::is_at(point const&, bool) const src/gui/widgets/widget.cpp:622 (wesnoth-debug+0x47d0483)    #3 gui2::widget::find_at(point const&, bool) src/gui/widgets/widget.cpp:572 (wesnoth-debug+0x47cfae4)    #4 gui2::scrollbar_container::find_at(point const&, bool) src/gui/widgets/scrollbar_container.cpp:477 (wesnoth-debug+0x471443e)    #5 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #6 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #7 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #8 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #9 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #10 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #11 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #12 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #13 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #14 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #15 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #16 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #17 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #18 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #19 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #20 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #21 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #22 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #23 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #24 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #25 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #26 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #27 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #28 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #29 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #30 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #31 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #32 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b7000134a00 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1832 at 0x7b7000134800 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_scrollbar_panel::build() const src/gui/widgets/scrollbar_panel.cpp:154 (wesnoth-debug+0x3b29a0c)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #4 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #5 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #6 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #7 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #8 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #9 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #10 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #11 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #12 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #13 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #14 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #15 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #16 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #17 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #18 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #19 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #20 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #21 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #22 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #23 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #24 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #25 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #26 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #27 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:299 in gui2::widget::get_origin() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 4 at 0x7b64000f933c by main thread:    #0 gui2::widget::recursive_is_visible(gui2::widget const*, bool) const src/gui/widgets/widget.cpp:605 (wesnoth-debug+0x47d0038)    #1 gui2::widget::is_at(point const&, bool) const src/gui/widgets/widget.cpp:618 (wesnoth-debug+0x47d037e)    #2 gui2::widget::find_at(point const&, bool) src/gui/widgets/widget.cpp:572 (wesnoth-debug+0x47cfae4)    #3 gui2::styled_widget::find_at(point const&, bool) src/gui/widgets/styled_widget.cpp:291 (wesnoth-debug+0x4760da1)    #4 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #5 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #6 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #7 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #8 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #9 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #10 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #11 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #12 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #13 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #14 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #15 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #16 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #17 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #18 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #19 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #20 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #21 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #22 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #23 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #24 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #25 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #26 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #27 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #28 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #29 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #30 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #31 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b64000f9338 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1032 at 0x7b64000f9100 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_button::build() const src/gui/widgets/button.cpp:247 (wesnoth-debug+0x39718e0)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #4 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #5 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #6 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #7 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #8 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #9 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #10 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #11 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #12 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #13 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #14 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #15 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #16 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #17 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #18 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #19 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #20 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #21 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #22 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #23 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #24 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #25 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #26 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #27 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:605 in gui2::widget::recursive_is_visible(gui2::widget const*, bool) const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b64000f92f8 by main thread:    #0 gui2::widget::recursive_is_visible(gui2::widget const*, bool) const src/gui/widgets/widget.cpp:610 (wesnoth-debug+0x47d023a)    #1 gui2::widget::is_at(point const&, bool) const src/gui/widgets/widget.cpp:618 (wesnoth-debug+0x47d037e)    #2 gui2::widget::find_at(point const&, bool) src/gui/widgets/widget.cpp:572 (wesnoth-debug+0x47cfae4)    #3 gui2::styled_widget::find_at(point const&, bool) src/gui/widgets/styled_widget.cpp:291 (wesnoth-debug+0x4760da1)    #4 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #5 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #6 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #7 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #8 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #9 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #10 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #11 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #12 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #13 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #14 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #15 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #16 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #17 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #18 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #19 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #20 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #21 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #22 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #23 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #24 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #25 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #26 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #27 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #28 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #29 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #30 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #31 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b64000f92f8 by thread T11:    [failed to restore the stack]   Location is heap block of size 1032 at 0x7b64000f9100 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_button::build() const src/gui/widgets/button.cpp:247 (wesnoth-debug+0x39718e0)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #4 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #5 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #6 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #7 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #8 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #9 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #10 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #11 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #12 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #13 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #14 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #15 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #16 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #17 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #18 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #19 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #20 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #21 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #22 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #23 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #24 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #25 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #26 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #27 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:610 in gui2::widget::recursive_is_visible(gui2::widget const*, bool) const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 4 at 0x7b64000f930c by main thread:    #0 gui2::widget::get_size() const src/gui/widgets/widget.cpp:304 (wesnoth-debug+0x47ca488)    #1 gui2::widget::get_rectangle() const src/gui/widgets/widget.cpp:309 (wesnoth-debug+0x47ca6e0)    #2 gui2::widget::is_at(point const&, bool) const src/gui/widgets/widget.cpp:622 (wesnoth-debug+0x47d0483)    #3 gui2::widget::find_at(point const&, bool) src/gui/widgets/widget.cpp:572 (wesnoth-debug+0x47cfae4)    #4 gui2::styled_widget::find_at(point const&, bool) src/gui/widgets/styled_widget.cpp:291 (wesnoth-debug+0x4760da1)    #5 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #6 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #7 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #8 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #9 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #10 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #11 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #12 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #13 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #14 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #15 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #16 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #17 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #18 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #19 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #20 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #21 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #22 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #23 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #24 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #25 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #26 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #27 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #28 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #29 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #30 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #31 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #32 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 4 at 0x7b64000f930c by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1032 at 0x7b64000f9100 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_button::build() const src/gui/widgets/button.cpp:247 (wesnoth-debug+0x39718e0)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #4 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #5 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #6 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #7 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #8 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #9 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #10 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #11 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #12 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #13 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #14 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #15 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #16 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #17 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #18 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #19 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #20 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #21 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #22 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #23 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #24 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #25 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #26 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #27 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:304 in gui2::widget::get_size() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 4 at 0x7b64000f9308 by main thread:    #0 gui2::widget::get_size() const src/gui/widgets/widget.cpp:304 (wesnoth-debug+0x47ca58e)    #1 gui2::widget::get_rectangle() const src/gui/widgets/widget.cpp:309 (wesnoth-debug+0x47ca6e0)    #2 gui2::widget::is_at(point const&, bool) const src/gui/widgets/widget.cpp:622 (wesnoth-debug+0x47d0483)    #3 gui2::widget::find_at(point const&, bool) src/gui/widgets/widget.cpp:572 (wesnoth-debug+0x47cfae4)    #4 gui2::styled_widget::find_at(point const&, bool) src/gui/widgets/styled_widget.cpp:291 (wesnoth-debug+0x4760da1)    #5 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #6 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #7 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #8 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #9 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #10 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #11 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #12 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #13 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #14 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #15 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #16 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #17 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #18 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #19 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #20 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #21 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #22 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #23 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #24 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #25 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #26 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #27 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #28 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #29 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #30 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #31 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #32 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 4 at 0x7b64000f9308 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1032 at 0x7b64000f9100 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_button::build() const src/gui/widgets/button.cpp:247 (wesnoth-debug+0x39718e0)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #4 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #5 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #6 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #7 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #8 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #9 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #10 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #11 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #12 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #13 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #14 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #15 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #16 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #17 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #18 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #19 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #20 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #21 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #22 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #23 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #24 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #25 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #26 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #27 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:304 in gui2::widget::get_size() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 4 at 0x7b64000f9304 by main thread:    #0 gui2::widget::get_origin() const src/gui/widgets/widget.cpp:299 (wesnoth-debug+0x47ca232)    #1 gui2::widget::get_rectangle() const src/gui/widgets/widget.cpp:309 (wesnoth-debug+0x47ca7fe)    #2 gui2::widget::is_at(point const&, bool) const src/gui/widgets/widget.cpp:622 (wesnoth-debug+0x47d0483)    #3 gui2::widget::find_at(point const&, bool) src/gui/widgets/widget.cpp:572 (wesnoth-debug+0x47cfae4)    #4 gui2::styled_widget::find_at(point const&, bool) src/gui/widgets/styled_widget.cpp:291 (wesnoth-debug+0x4760da1)    #5 gui2::widget* gui2::grid_implementation::find_at<gui2::widget>(utils::const_clone<gui2::grid, gui2::widget>::reference, point const&, bool) src/gui/widgets/grid_private.hpp:67 (wesnoth-debug+0x46c828b)    #6 gui2::grid::find_at(point const&, bool) src/gui/widgets/grid.cpp:645 (wesnoth-debug+0x46b6e3b)    #7 gui2::container_base::find_at(point const&, bool) src/gui/widgets/container_base.cpp:223 (wesnoth-debug+0x4391c80)    #8 gui2::window::find_at(point const&, bool) src/gui/widgets/window.cpp:814 (wesnoth-debug+0x3c4aec3)    #9 gui2::event::mouse_motion::signal_handler_sdl_mouse_motion(gui2::event::ui_event, bool&, point const&) src/gui/core/event/distributor.cpp:174 (wesnoth-debug+0x41c6de6)    #10 void std::__invoke_impl<void, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(std::__invoke_memfun_deref, void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x42082e8)    #11 std::__invoke_result<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>::type std::__invoke<void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event, bool&, point const&>(void (gui2::event::mouse_motion::*&)(gui2::event::ui_event, bool&, point const&), gui2::event::mouse_motion*&, gui2::event::ui_event&&, bool&, point const&) /usr/include/c++/7/bits/invoke.h:95 (wesnoth-debug+0x4205f53)    #12 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&, 0ul, 1ul, 2ul, 3ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/include/c++/7/functional:467 (wesnoth-debug+0x4202d72)    #13 void std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x41f8904)    #14 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&), std::_Bind<void (gui2::event::mouse_motion::*(gui2::event::mouse_motion*, boost::arg<2>, boost::arg<3>, boost::arg<5>))(gui2::event::ui_event, bool&, point const&)> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, point const&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x41e03e3)    #15 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419c484)    #16 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418e5e9)    #17 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&, point const&)>, point const&>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*, point const&) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188b13)    #18 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&, point const&) src/gui/core/event/dispatcher.cpp:144 (wesnoth-debug+0x41826a1)    #19 gui2::event::sdl_event_handler::mouse(gui2::event::ui_event, point const&) src/gui/core/event/handler.cpp:586 (wesnoth-debug+0x4211330)    #20 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:361 (wesnoth-debug+0x420cb13)    #21 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #22 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #23 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #24 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #25 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #26 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #27 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #28 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #29 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #30 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #31 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #32 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b64000f9300 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 1032 at 0x7b64000f9100 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_button::build() const src/gui/widgets/button.cpp:247 (wesnoth-debug+0x39718e0)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::container_base::init_grid(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/container_base.cpp:272 (wesnoth-debug+0x439318b)    #4 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:72 (wesnoth-debug+0x422f777)    #5 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #6 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #7 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #8 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #9 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #10 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #11 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #12 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #13 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #14 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #15 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #16 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #17 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #18 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #19 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #20 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #21 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #22 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #23 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #24 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #25 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #26 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #27 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:299 in gui2::widget::get_origin() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 4 at 0x7b1c01e79ba0 by main thread:    #0 std::less<gui2::event::ui_event>::operator()(gui2::event::ui_event const&, gui2::event::ui_event const&) const /usr/include/c++/7/bits/stl_function.h:386 (wesnoth-debug+0x3979847)    #1 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_lower_bound(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >*, std::_Rb_tree_node_base*, gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_tree.h:1872 (wesnoth-debug+0x397d9aa)    #2 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::lower_bound(gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_tree.h:1187 (wesnoth-debug+0x397ab24)    #3 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::lower_bound(gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_map.h:1234 (wesnoth-debug+0x397958e)    #4 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::operator[](gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_map.h:489 (wesnoth-debug+0x3977c48)    #5 std::enable_if<boost::mpl::has_key<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, mpl_::int_<1> >::value, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::type& gui2::event::dispatcher_implementation::event_signal<mpl_::int_<1> >(gui2::event::dispatcher&, gui2::event::ui_event) src/gui/core/event/dispatcher_private.hpp:91 (wesnoth-debug+0x41c4f59)    #6 bool gui2::event::dispatcher_implementation::has_handler::oper<mpl_::int_<1> >(gui2::event::ui_event) src/gui/core/event/dispatcher_private.hpp:154 (wesnoth-debug+0x41c48e7)    #7 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:205 (wesnoth-debug+0x41c3cdd)    #8 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41c2981)    #9 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41c13b5)    #10 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41c011f)    #11 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41beea1)    #12 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41bdc3b)    #13 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41bc7e3)    #14 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41bb335)    #15 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41b951b)    #16 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41b6ee9)    #17 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41b21b9)    #18 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41ac065)    #19 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41a6fbb)    #20 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41a14d1)    #21 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<24>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<24>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41985f5)    #22 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<25>, boost::mpl::s_item<mpl_::int_<24>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<25>, boost::mpl::s_item<mpl_::int_<24>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x418bbc7)    #23 bool gui2::event::find<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:246 (wesnoth-debug+0x4186fec)    #24 gui2::event::dispatcher::has_event(gui2::event::ui_event, gui2::event::dispatcher::event_queue_type) src/gui/core/event/dispatcher.cpp:78 (wesnoth-debug+0x418225d)    #25 std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > > gui2::event::implementation::build_event_chain<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >(gui2::event::ui_event, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:310 (wesnoth-debug+0x418d7e5)    #26 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:502 (wesnoth-debug+0x418895f)    #27 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #28 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #29 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #30 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #31 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #32 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #33 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #34 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #35 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #36 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #37 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #38 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #39 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #40 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #41 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b1c01e79ba0 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 112 at 0x7b1c01e79b80 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x3980b6a)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x397f8ea)    #3 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x397daf1)    #4 std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >* std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x397ac5d)    #5 std::_Rb_tree_iterator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x3979ab9)    #6 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::operator[](gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x3977e2a)    #7 gui2::event::dispatcher::signal_queue<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >::connect_signal(gui2::event::ui_event, gui2::event::dispatcher::queue_position, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) src/gui/core/event/dispatcher.hpp:729 (wesnoth-debug+0x3976080)    #8 std::enable_if<boost::mpl::has_key<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, mpl_::int_<(gui2::event::ui_event)1> >::value, void>::type gui2::event::dispatcher::connect_signal<(gui2::event::ui_event)1>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&, gui2::event::dispatcher::queue_position) src/gui/core/event/dispatcher.hpp:365 (wesnoth-debug+0x3c64c81)    #9 gui2::window::window(gui2::builder_window::window_resolution const*) src/gui/widgets/window.cpp:321 (wesnoth-debug+0x3c40c29)    #10 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee5b)    #11 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #12 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #13 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #14 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #15 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #16 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #17 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #18 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #19 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #20 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #21 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #22 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #23 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #24 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #25 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #26 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #27 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #28 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #29 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #30 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #31 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #32 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #33 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/stl_function.h:386 in std::less<gui2::event::ui_event>::operator()(gui2::event::ui_event const&, gui2::event::ui_event const&) const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b1c01e79b90 by main thread:    #0 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_S_left(std::_Rb_tree_node_base*) /usr/include/c++/7/bits/stl_tree.h:764 (wesnoth-debug+0x397f836)    #1 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_lower_bound(std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >*, std::_Rb_tree_node_base*, gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_tree.h:1873 (wesnoth-debug+0x397d9c5)    #2 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::lower_bound(gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_tree.h:1187 (wesnoth-debug+0x397ab24)    #3 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::lower_bound(gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_map.h:1234 (wesnoth-debug+0x397958e)    #4 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::operator[](gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_map.h:489 (wesnoth-debug+0x3977c48)    #5 std::enable_if<boost::mpl::has_key<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, mpl_::int_<1> >::value, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::type& gui2::event::dispatcher_implementation::event_signal<mpl_::int_<1> >(gui2::event::dispatcher&, gui2::event::ui_event) src/gui/core/event/dispatcher_private.hpp:91 (wesnoth-debug+0x41c4f59)    #6 bool gui2::event::dispatcher_implementation::has_handler::oper<mpl_::int_<1> >(gui2::event::ui_event) src/gui/core/event/dispatcher_private.hpp:154 (wesnoth-debug+0x41c48e7)    #7 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:205 (wesnoth-debug+0x41c3cdd)    #8 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41c2981)    #9 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41c13b5)    #10 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41c011f)    #11 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41beea1)    #12 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41bdc3b)    #13 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41bc7e3)    #14 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41bb335)    #15 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41b951b)    #16 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41b6ee9)    #17 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41b21b9)    #18 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41ac065)    #19 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41a6fbb)    #20 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41a14d1)    #21 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<24>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<24>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41985f5)    #22 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<25>, boost::mpl::s_item<mpl_::int_<24>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<25>, boost::mpl::s_item<mpl_::int_<24>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x418bbc7)    #23 bool gui2::event::find<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:246 (wesnoth-debug+0x4186fec)    #24 gui2::event::dispatcher::has_event(gui2::event::ui_event, gui2::event::dispatcher::event_queue_type) src/gui/core/event/dispatcher.cpp:78 (wesnoth-debug+0x418225d)    #25 std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > > gui2::event::implementation::build_event_chain<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >(gui2::event::ui_event, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:310 (wesnoth-debug+0x418d7e5)    #26 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:502 (wesnoth-debug+0x418895f)    #27 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #28 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #29 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #30 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #31 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #32 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #33 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #34 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #35 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #36 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #37 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #38 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #39 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #40 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #41 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b1c01e79b90 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 112 at 0x7b1c01e79b80 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x3980b6a)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x397f8ea)    #3 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x397daf1)    #4 std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >* std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x397ac5d)    #5 std::_Rb_tree_iterator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x3979ab9)    #6 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::operator[](gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x3977e2a)    #7 gui2::event::dispatcher::signal_queue<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >::connect_signal(gui2::event::ui_event, gui2::event::dispatcher::queue_position, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) src/gui/core/event/dispatcher.hpp:729 (wesnoth-debug+0x3976080)    #8 std::enable_if<boost::mpl::has_key<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, mpl_::int_<(gui2::event::ui_event)1> >::value, void>::type gui2::event::dispatcher::connect_signal<(gui2::event::ui_event)1>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&, gui2::event::dispatcher::queue_position) src/gui/core/event/dispatcher.hpp:365 (wesnoth-debug+0x3c64c81)    #9 gui2::window::window(gui2::builder_window::window_resolution const*) src/gui/widgets/window.cpp:321 (wesnoth-debug+0x3c40c29)    #10 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee5b)    #11 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #12 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #13 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #14 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #15 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #16 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #17 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #18 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #19 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #20 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #21 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #22 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #23 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #24 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #25 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #26 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #27 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #28 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #29 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #30 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #31 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #32 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #33 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/stl_tree.h:764 in std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_S_left(std::_Rb_tree_node_base*)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b1c01e79ba8 by main thread:    #0 std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::empty() const <null> (wesnoth-debug+0x41a0f69)    #1 bool gui2::event::dispatcher_implementation::has_handler::oper<mpl_::int_<1> >(gui2::event::ui_event) src/gui/core/event/dispatcher_private.hpp:154 (wesnoth-debug+0x41c4914)    #2 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:205 (wesnoth-debug+0x41c3cdd)    #3 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41c2981)    #4 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41c13b5)    #5 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41c011f)    #6 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41beea1)    #7 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41bdc3b)    #8 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41bc7e3)    #9 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41bb335)    #10 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41b951b)    #11 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41b6ee9)    #12 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41b21b9)    #13 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41ac065)    #14 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41a6fbb)    #15 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41a14d1)    #16 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<24>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<24>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41985f5)    #17 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<25>, boost::mpl::s_item<mpl_::int_<24>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<25>, boost::mpl::s_item<mpl_::int_<24>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x418bbc7)    #18 bool gui2::event::find<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:246 (wesnoth-debug+0x4186fec)    #19 gui2::event::dispatcher::has_event(gui2::event::ui_event, gui2::event::dispatcher::event_queue_type) src/gui/core/event/dispatcher.cpp:78 (wesnoth-debug+0x418225d)    #20 std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > > gui2::event::implementation::build_event_chain<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >(gui2::event::ui_event, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:310 (wesnoth-debug+0x418d7e5)    #21 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:502 (wesnoth-debug+0x418895f)    #22 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #23 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #24 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #25 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #26 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #27 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #28 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #29 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #30 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #31 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #32 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #33 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #34 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #35 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #36 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b1c01e79ba8 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 112 at 0x7b1c01e79b80 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x3980b6a)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x397f8ea)    #3 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x397daf1)    #4 std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >* std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x397ac5d)    #5 std::_Rb_tree_iterator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x3979ab9)    #6 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::operator[](gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x3977e2a)    #7 gui2::event::dispatcher::signal_queue<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >::connect_signal(gui2::event::ui_event, gui2::event::dispatcher::queue_position, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) src/gui/core/event/dispatcher.hpp:729 (wesnoth-debug+0x3976080)    #8 std::enable_if<boost::mpl::has_key<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, mpl_::int_<(gui2::event::ui_event)1> >::value, void>::type gui2::event::dispatcher::connect_signal<(gui2::event::ui_event)1>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&, gui2::event::dispatcher::queue_position) src/gui/core/event/dispatcher.hpp:365 (wesnoth-debug+0x3c64c81)    #9 gui2::window::window(gui2::builder_window::window_resolution const*) src/gui/widgets/window.cpp:321 (wesnoth-debug+0x3c40c29)    #10 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee5b)    #11 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #12 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #13 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #14 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #15 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #16 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #17 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #18 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #19 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #20 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #21 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #22 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #23 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #24 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #25 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #26 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #27 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #28 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #29 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #30 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #31 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #32 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #33 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race (/home/shadowm/src/wesnoth-1.14/wesnoth-debug+0x41a0f69) in std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::empty() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b1c01e79bd8 by main thread:    #0 std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::empty() const <null> (wesnoth-debug+0x41a0f69)    #1 bool gui2::event::dispatcher_implementation::has_handler::oper<mpl_::int_<1> >(gui2::event::ui_event) src/gui/core/event/dispatcher_private.hpp:164 (wesnoth-debug+0x41c4af2)    #2 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:205 (wesnoth-debug+0x41c3cdd)    #3 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41c2981)    #4 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41c13b5)    #5 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41c011f)    #6 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41beea1)    #7 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41bdc3b)    #8 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41bc7e3)    #9 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41bb335)    #10 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41b951b)    #11 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41b6ee9)    #12 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41b21b9)    #13 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41ac065)    #14 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41a6fbb)    #15 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41a14d1)    #16 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<24>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<24>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41985f5)    #17 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<25>, boost::mpl::s_item<mpl_::int_<24>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<25>, boost::mpl::s_item<mpl_::int_<24>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x418bbc7)    #18 bool gui2::event::find<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:246 (wesnoth-debug+0x4186fec)    #19 gui2::event::dispatcher::has_event(gui2::event::ui_event, gui2::event::dispatcher::event_queue_type) src/gui/core/event/dispatcher.cpp:78 (wesnoth-debug+0x418225d)    #20 std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > > gui2::event::implementation::build_event_chain<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >(gui2::event::ui_event, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:310 (wesnoth-debug+0x418d7e5)    #21 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:502 (wesnoth-debug+0x418895f)    #22 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #23 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #24 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #25 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #26 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #27 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #28 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #29 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #30 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #31 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #32 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #33 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #34 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #35 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #36 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b1c01e79bd8 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 112 at 0x7b1c01e79b80 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x3980b6a)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x397f8ea)    #3 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x397daf1)    #4 std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >* std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x397ac5d)    #5 std::_Rb_tree_iterator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x3979ab9)    #6 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::operator[](gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x3977e2a)    #7 gui2::event::dispatcher::signal_queue<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >::connect_signal(gui2::event::ui_event, gui2::event::dispatcher::queue_position, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) src/gui/core/event/dispatcher.hpp:729 (wesnoth-debug+0x3976080)    #8 std::enable_if<boost::mpl::has_key<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, mpl_::int_<(gui2::event::ui_event)1> >::value, void>::type gui2::event::dispatcher::connect_signal<(gui2::event::ui_event)1>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&, gui2::event::dispatcher::queue_position) src/gui/core/event/dispatcher.hpp:365 (wesnoth-debug+0x3c64c81)    #9 gui2::window::window(gui2::builder_window::window_resolution const*) src/gui/widgets/window.cpp:321 (wesnoth-debug+0x3c40c29)    #10 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee5b)    #11 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #12 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #13 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #14 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #15 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #16 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #17 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #18 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #19 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #20 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #21 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #22 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #23 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #24 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #25 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #26 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #27 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #28 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #29 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #30 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #31 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #32 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #33 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race (/home/shadowm/src/wesnoth-1.14/wesnoth-debug+0x41a0f69) in std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::empty() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b1c01e79bc0 by main thread:    #0 std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::empty() const <null> (wesnoth-debug+0x41a0f69)    #1 bool gui2::event::dispatcher_implementation::has_handler::oper<mpl_::int_<1> >(gui2::event::ui_event) src/gui/core/event/dispatcher_private.hpp:159 (wesnoth-debug+0x41c4a03)    #2 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:205 (wesnoth-debug+0x41c3cdd)    #3 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41c2981)    #4 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41c13b5)    #5 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41c011f)    #6 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41beea1)    #7 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:212 (wesnoth-debug+0x41bdc3b)    #8 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41bc7e3)    #9 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41bb335)    #10 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41b951b)    #11 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41b6ee9)    #12 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41b21b9)    #13 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41ac065)    #14 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41a6fbb)    #15 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41a14d1)    #16 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<24>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<24>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x41985f5)    #17 bool gui2::event::implementation::find<false>::execute<boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<25>, boost::mpl::s_item<mpl_::int_<24>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > > >, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::s_item<mpl_::int_<25>, boost::mpl::s_item<mpl_::int_<24>, boost::mpl::s_item<mpl_::int_<23>, boost::mpl::s_item<mpl_::int_<22>, boost::mpl::s_item<mpl_::int_<19>, boost::mpl::s_item<mpl_::int_<18>, boost::mpl::s_item<mpl_::int_<17>, boost::mpl::s_item<mpl_::int_<16>, boost::mpl::s_item<mpl_::int_<13>, boost::mpl::s_item<mpl_::int_<12>, boost::mpl::s_item<mpl_::int_<11>, boost::mpl::s_item<mpl_::int_<10>, boost::mpl::s_item<mpl_::int_<7>, boost::mpl::s_item<mpl_::int_<5>, boost::mpl::s_item<mpl_::int_<2>, boost::mpl::s_item<mpl_::int_<1>, boost::mpl::set0<mpl_::na> > > > > > > > > > > > > > > > > >*, boost::mpl::s_iter<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::set0<mpl_::na> >*, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) <null> (wesnoth-debug+0x418bbc7)    #18 bool gui2::event::find<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler>(gui2::event::ui_event, gui2::event::dispatcher_implementation::has_handler) src/gui/core/event/dispatcher_private.hpp:246 (wesnoth-debug+0x4186fec)    #19 gui2::event::dispatcher::has_event(gui2::event::ui_event, gui2::event::dispatcher::event_queue_type) src/gui/core/event/dispatcher.cpp:78 (wesnoth-debug+0x418225d)    #20 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:428 (wesnoth-debug+0x418cec0)    #21 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #22 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #23 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #24 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #25 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #26 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #27 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #28 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #29 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #30 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #31 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #32 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #33 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #34 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #35 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #36 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b1c01e79bc0 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 112 at 0x7b1c01e79b80 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x3980b6a)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x397f8ea)    #3 std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x397daf1)    #4 std::_Rb_tree_node<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >* std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x397ac5d)    #5 std::_Rb_tree_iterator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > std::_Rb_tree<gui2::event::ui_event, std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >, std::_Select1st<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >, std::piecewise_construct_t const&, std::tuple<gui2::event::ui_event const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x3979ab9)    #6 std::map<gui2::event::ui_event, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >, std::less<gui2::event::ui_event>, std::allocator<std::pair<gui2::event::ui_event const, gui2::event::dispatcher::signal_type<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > > >::operator[](gui2::event::ui_event const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x3977e2a)    #7 gui2::event::dispatcher::signal_queue<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >::connect_signal(gui2::event::ui_event, gui2::event::dispatcher::queue_position, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) src/gui/core/event/dispatcher.hpp:729 (wesnoth-debug+0x3976080)    #8 std::enable_if<boost::mpl::has_key<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, mpl_::int_<(gui2::event::ui_event)1> >::value, void>::type gui2::event::dispatcher::connect_signal<(gui2::event::ui_event)1>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&, gui2::event::dispatcher::queue_position) src/gui/core/event/dispatcher.hpp:365 (wesnoth-debug+0x3c64c81)    #9 gui2::window::window(gui2::builder_window::window_resolution const*) src/gui/widgets/window.cpp:321 (wesnoth-debug+0x3c40c29)    #10 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee5b)    #11 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #12 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #13 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #14 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #15 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #16 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #17 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #18 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #19 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #20 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #21 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #22 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #23 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #24 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #25 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #26 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #27 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #28 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #29 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #30 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #31 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #32 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #33 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race (/home/shadowm/src/wesnoth-1.14/wesnoth-debug+0x41a0f69) in std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::empty() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b0c002ce670 by main thread:    #0 std::_Function_base::_M_empty() const /usr/include/c++/7/bits/std_function.h:279 (wesnoth-debug+0x393dacd)    #1 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:704 (wesnoth-debug+0x419b81d)    #2 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #3 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #4 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #5 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #6 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #7 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #8 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #9 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #10 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #11 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #12 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #13 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #14 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #15 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #16 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #17 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #18 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b0c002ce670 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 48 at 0x7b0c002ce650 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x3981297)    #2 std::allocator_traits<std::allocator<std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >::allocate(std::allocator<std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x397fc67)    #3 std::__cxx11::_List_base<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::_M_get_node() /usr/include/c++/7/bits/stl_list.h:383 (wesnoth-debug+0x397e917)    #4 std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >* std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::_M_create_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/stl_list.h:572 (wesnoth-debug+0x397bd1c)    #5 void std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::_M_insert<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&>(std::_List_iterator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/stl_list.h:1801 (wesnoth-debug+0x3979da6)    #6 std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::push_back(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/stl_list.h:1118 (wesnoth-debug+0x3978067)    #7 gui2::event::dispatcher::signal_queue<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >::connect_signal(gui2::event::ui_event, gui2::event::dispatcher::queue_position, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) src/gui/core/event/dispatcher.hpp:729 (wesnoth-debug+0x39760da)    #8 std::enable_if<boost::mpl::has_key<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, mpl_::int_<(gui2::event::ui_event)1> >::value, void>::type gui2::event::dispatcher::connect_signal<(gui2::event::ui_event)1>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&, gui2::event::dispatcher::queue_position) src/gui/core/event/dispatcher.hpp:365 (wesnoth-debug+0x3c64c81)    #9 gui2::window::window(gui2::builder_window::window_resolution const*) src/gui/widgets/window.cpp:321 (wesnoth-debug+0x3c40c29)    #10 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee5b)    #11 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #12 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #13 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #14 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #15 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #16 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #17 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #18 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #19 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #20 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #21 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #22 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #23 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #24 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #25 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #26 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #27 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #28 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #29 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #30 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #31 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #32 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #33 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/std_function.h:279 in std::_Function_base::_M_empty() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b0c002ce678 by main thread:    #0 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b85b)    #1 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #2 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #3 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #4 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #5 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #6 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #7 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #8 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #9 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #10 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #11 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #12 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #13 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #14 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #15 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #16 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #17 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b0c002ce678 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 48 at 0x7b0c002ce650 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x3981297)    #2 std::allocator_traits<std::allocator<std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >::allocate(std::allocator<std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x397fc67)    #3 std::__cxx11::_List_base<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::_M_get_node() /usr/include/c++/7/bits/stl_list.h:383 (wesnoth-debug+0x397e917)    #4 std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >* std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::_M_create_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/stl_list.h:572 (wesnoth-debug+0x397bd1c)    #5 void std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::_M_insert<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&>(std::_List_iterator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/stl_list.h:1801 (wesnoth-debug+0x3979da6)    #6 std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::push_back(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/stl_list.h:1118 (wesnoth-debug+0x3978067)    #7 gui2::event::dispatcher::signal_queue<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >::connect_signal(gui2::event::ui_event, gui2::event::dispatcher::queue_position, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) src/gui/core/event/dispatcher.hpp:729 (wesnoth-debug+0x39760da)    #8 std::enable_if<boost::mpl::has_key<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, mpl_::int_<(gui2::event::ui_event)1> >::value, void>::type gui2::event::dispatcher::connect_signal<(gui2::event::ui_event)1>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&, gui2::event::dispatcher::queue_position) src/gui/core/event/dispatcher.hpp:365 (wesnoth-debug+0x3c64c81)    #9 gui2::window::window(gui2::builder_window::window_resolution const*) src/gui/widgets/window.cpp:321 (wesnoth-debug+0x3c40c29)    #10 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee5b)    #11 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #12 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #13 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #14 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #15 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #16 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #17 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #18 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #19 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #20 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #21 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #22 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #23 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #24 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #25 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #26 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #27 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #28 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #29 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #30 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #31 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #32 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #33 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/std_function.h:706 in std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b0c002ce660 by main thread:    #0 std::_Function_base::_Base_manager<std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_get_pointer(std::_Any_data const&) <null> (wesnoth-debug+0x3c7aff5)    #1 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6f956)    #2 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #3 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #4 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #5 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #6 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #7 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #8 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #9 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #10 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #11 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #12 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #13 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #14 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #15 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #16 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #17 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #18 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #19 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b0c002ce660 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 48 at 0x7b0c002ce650 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x3981297)    #2 std::allocator_traits<std::allocator<std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >::allocate(std::allocator<std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x397fc67)    #3 std::__cxx11::_List_base<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::_M_get_node() /usr/include/c++/7/bits/stl_list.h:383 (wesnoth-debug+0x397e917)    #4 std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >* std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::_M_create_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/stl_list.h:572 (wesnoth-debug+0x397bd1c)    #5 void std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::_M_insert<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&>(std::_List_iterator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/stl_list.h:1801 (wesnoth-debug+0x3979da6)    #6 std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::push_back(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/stl_list.h:1118 (wesnoth-debug+0x3978067)    #7 gui2::event::dispatcher::signal_queue<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >::connect_signal(gui2::event::ui_event, gui2::event::dispatcher::queue_position, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) src/gui/core/event/dispatcher.hpp:729 (wesnoth-debug+0x39760da)    #8 std::enable_if<boost::mpl::has_key<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, mpl_::int_<(gui2::event::ui_event)1> >::value, void>::type gui2::event::dispatcher::connect_signal<(gui2::event::ui_event)1>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&, gui2::event::dispatcher::queue_position) src/gui/core/event/dispatcher.hpp:365 (wesnoth-debug+0x3c64c81)    #9 gui2::window::window(gui2::builder_window::window_resolution const*) src/gui/widgets/window.cpp:321 (wesnoth-debug+0x3c40c29)    #10 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee5b)    #11 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #12 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #13 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #14 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #15 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #16 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #17 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #18 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #19 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #20 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #21 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #22 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #23 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #24 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #25 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #26 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #27 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #28 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #29 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #30 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #31 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #32 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #33 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race (/home/shadowm/src/wesnoth-1.14/wesnoth-debug+0x3c7aff5) in std::_Function_base::_Base_manager<std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_get_pointer(std::_Any_data const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b080055e0b0 by main thread:    #0 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c915f5)    #1 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #2 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #3 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #4 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #5 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #6 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #7 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #8 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #9 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #10 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #11 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #12 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #13 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #14 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #15 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #16 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #17 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #18 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #19 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #20 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #21 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #22 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b080055e0b0 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 24 at 0x7b080055e0a0 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 std::_Function_base::_Base_manager<std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_clone(std::_Any_data&, std::_Any_data const&, std::integral_constant<bool, false>) /usr/include/c++/7/bits/std_function.h:192 (wesnoth-debug+0x3c7b29d)    #2 std::_Function_base::_Base_manager<std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) /usr/include/c++/7/bits/std_function.h:227 (wesnoth-debug+0x3c6fbb4)    #3 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::function(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/std_function.h:677 (wesnoth-debug+0x3981449)    #4 void __gnu_cxx::new_allocator<std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::construct<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>*, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/ext/new_allocator.h:136 (wesnoth-debug+0x397fdee)    #5 void std::allocator_traits<std::allocator<std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >::construct<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&>(std::allocator<std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >&, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>*, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/alloc_traits.h:475 (wesnoth-debug+0x397ec6a)    #6 std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >* std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::_M_create_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/stl_list.h:575 (wesnoth-debug+0x397be11)    #7 void std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::_M_insert<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&>(std::_List_iterator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/stl_list.h:1801 (wesnoth-debug+0x3979da6)    #8 std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::push_back(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/stl_list.h:1118 (wesnoth-debug+0x3978067)    #9 gui2::event::dispatcher::signal_queue<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >::connect_signal(gui2::event::ui_event, gui2::event::dispatcher::queue_position, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) src/gui/core/event/dispatcher.hpp:729 (wesnoth-debug+0x39760da)    #10 std::enable_if<boost::mpl::has_key<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, mpl_::int_<(gui2::event::ui_event)1> >::value, void>::type gui2::event::dispatcher::connect_signal<(gui2::event::ui_event)1>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&, gui2::event::dispatcher::queue_position) src/gui/core/event/dispatcher.hpp:365 (wesnoth-debug+0x3c64c81)    #11 gui2::window::window(gui2::builder_window::window_resolution const*) src/gui/widgets/window.cpp:321 (wesnoth-debug+0x3c40c29)    #12 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee5b)    #13 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #14 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #15 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #16 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #17 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #18 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #19 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #20 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #21 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #22 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #23 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #24 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #25 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #26 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #27 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #28 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #29 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #30 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #31 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #32 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #33 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #34 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #35 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/invoke.h:73 in void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b080055e0a8 by main thread:    #0 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9162d)    #1 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #2 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #3 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #4 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #5 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #6 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #7 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #8 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #9 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #10 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #11 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #12 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #13 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #14 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #15 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #16 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #17 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #18 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #19 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #20 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #21 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #22 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b080055e0a8 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 24 at 0x7b080055e0a0 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 std::_Function_base::_Base_manager<std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_clone(std::_Any_data&, std::_Any_data const&, std::integral_constant<bool, false>) /usr/include/c++/7/bits/std_function.h:192 (wesnoth-debug+0x3c7b29d)    #2 std::_Function_base::_Base_manager<std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) /usr/include/c++/7/bits/std_function.h:227 (wesnoth-debug+0x3c6fbb4)    #3 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::function(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/std_function.h:677 (wesnoth-debug+0x3981449)    #4 void __gnu_cxx::new_allocator<std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::construct<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>*, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/ext/new_allocator.h:136 (wesnoth-debug+0x397fdee)    #5 void std::allocator_traits<std::allocator<std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >::construct<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&>(std::allocator<std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >&, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>*, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/alloc_traits.h:475 (wesnoth-debug+0x397ec6a)    #6 std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >* std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::_M_create_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/stl_list.h:575 (wesnoth-debug+0x397be11)    #7 void std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::_M_insert<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&>(std::_List_iterator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/stl_list.h:1801 (wesnoth-debug+0x3979da6)    #8 std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::push_back(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/stl_list.h:1118 (wesnoth-debug+0x3978067)    #9 gui2::event::dispatcher::signal_queue<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >::connect_signal(gui2::event::ui_event, gui2::event::dispatcher::queue_position, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) src/gui/core/event/dispatcher.hpp:729 (wesnoth-debug+0x39760da)    #10 std::enable_if<boost::mpl::has_key<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, mpl_::int_<(gui2::event::ui_event)1> >::value, void>::type gui2::event::dispatcher::connect_signal<(gui2::event::ui_event)1>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&, gui2::event::dispatcher::queue_position) src/gui/core/event/dispatcher.hpp:365 (wesnoth-debug+0x3c64c81)    #11 gui2::window::window(gui2::builder_window::window_resolution const*) src/gui/widgets/window.cpp:321 (wesnoth-debug+0x3c40c29)    #12 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee5b)    #13 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #14 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #15 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #16 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #17 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #18 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #19 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #20 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #21 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #22 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #23 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #24 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #25 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #26 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #27 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #28 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #29 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #30 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #31 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #32 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #33 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #34 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #35 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/invoke.h:73 in void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b080055e0a0 by main thread:    #0 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c91743)    #1 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #2 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #3 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #4 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #5 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #6 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #7 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #8 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #9 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #10 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #11 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #12 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #13 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #14 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #15 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #16 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #17 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #18 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #19 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #20 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #21 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #22 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b080055e0a0 by thread T11:    [failed to restore the stack]   As if synchronized via sleep:    #0 nanosleep <null> (libtsan.so.0+0x49490)    #1 <null> <null> (libSDL2-2.0.so.0+0xdd914)    #2 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #3 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #4 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #5 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #6 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #7 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #8 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #9 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #10 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #11 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Location is heap block of size 24 at 0x7b080055e0a0 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 std::_Function_base::_Base_manager<std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_clone(std::_Any_data&, std::_Any_data const&, std::integral_constant<bool, false>) /usr/include/c++/7/bits/std_function.h:192 (wesnoth-debug+0x3c7b29d)    #2 std::_Function_base::_Base_manager<std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) /usr/include/c++/7/bits/std_function.h:227 (wesnoth-debug+0x3c6fbb4)    #3 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::function(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/std_function.h:677 (wesnoth-debug+0x3981449)    #4 void __gnu_cxx::new_allocator<std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::construct<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>*, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/ext/new_allocator.h:136 (wesnoth-debug+0x397fdee)    #5 void std::allocator_traits<std::allocator<std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > > >::construct<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&>(std::allocator<std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >&, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>*, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/alloc_traits.h:475 (wesnoth-debug+0x397ec6a)    #6 std::_List_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >* std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::_M_create_node<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/stl_list.h:575 (wesnoth-debug+0x397be11)    #7 void std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::_M_insert<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&>(std::_List_iterator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/stl_list.h:1801 (wesnoth-debug+0x3979da6)    #8 std::__cxx11::list<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>, std::allocator<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> > >::push_back(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) /usr/include/c++/7/bits/stl_list.h:1118 (wesnoth-debug+0x3978067)    #9 gui2::event::dispatcher::signal_queue<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> >::connect_signal(gui2::event::ui_event, gui2::event::dispatcher::queue_position, std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&) src/gui/core/event/dispatcher.hpp:729 (wesnoth-debug+0x39760da)    #10 std::enable_if<boost::mpl::has_key<boost::mpl::set<mpl_::int_<1>, mpl_::int_<2>, mpl_::int_<5>, mpl_::int_<7>, mpl_::int_<10>, mpl_::int_<11>, mpl_::int_<12>, mpl_::int_<13>, mpl_::int_<16>, mpl_::int_<17>, mpl_::int_<18>, mpl_::int_<19>, mpl_::int_<22>, mpl_::int_<23>, mpl_::int_<24>, mpl_::int_<25>, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, mpl_::int_<(gui2::event::ui_event)1> >::value, void>::type gui2::event::dispatcher::connect_signal<(gui2::event::ui_event)1>(std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)> const&, gui2::event::dispatcher::queue_position) src/gui/core/event/dispatcher.hpp:365 (wesnoth-debug+0x3c64c81)    #11 gui2::window::window(gui2::builder_window::window_resolution const*) src/gui/widgets/window.cpp:321 (wesnoth-debug+0x3c40c29)    #12 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee5b)    #13 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #14 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #15 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #16 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #17 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #18 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #19 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #20 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #21 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #22 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #23 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #24 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #25 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #26 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #27 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #28 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #29 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #30 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #31 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #32 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #33 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #34 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #35 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/invoke.h:73 in void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 1 at 0x7b74000e9991 by main thread:    #0 gui2::window::draw() src/gui/widgets/window.cpp:614 (wesnoth-debug+0x3c475ef)    #1 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #2 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #3 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #4 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #5 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #6 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #7 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #8 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #9 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #10 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #11 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #12 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #13 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #14 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #15 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #16 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #17 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #18 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #19 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #20 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #21 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #22 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #23 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 1 at 0x7b74000e9991 by thread T11:    #0 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:524 (wesnoth-debug+0x3c45a71)    #1 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:255 (wesnoth-debug+0x4a8f910)    #2 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #3 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #4 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #5 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #6 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #7 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #8 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #9 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #10 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #11 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #12 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #13 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #14 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #15 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #16 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #17 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #18 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #19 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #20 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #21 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #22 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #23 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 2496 at 0x7b74000e9200 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee24)    #2 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #3 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #4 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #5 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #6 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #7 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #8 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #9 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #10 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #11 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #12 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #13 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #14 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #15 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #16 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #17 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #18 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #19 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #20 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #21 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #22 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #23 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #24 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/window.cpp:614 in gui2::window::draw()====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 1 at 0x7b74000e9900 by main thread:    #0 gui2::window::draw() src/gui/widgets/window.cpp:621 (wesnoth-debug+0x3c47877)    #1 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #2 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #3 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #4 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #5 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #6 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #7 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #8 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #9 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #10 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #11 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #12 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #13 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #14 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #15 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #16 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #17 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #18 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #19 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #20 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #21 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #22 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #23 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 1 at 0x7b74000e9900 by thread T11:    #0 gui2::window::invalidate_layout() src/gui/widgets/window.cpp:809 (wesnoth-debug+0x3c4ad99)    #1 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:523 (wesnoth-debug+0x3c4595f)    #2 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:255 (wesnoth-debug+0x4a8f910)    #3 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #4 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #5 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #6 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #7 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #8 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #9 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #10 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #11 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #12 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #13 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #14 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #15 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #16 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #17 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #18 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #19 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #20 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #21 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #22 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #23 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #24 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 2496 at 0x7b74000e9200 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee24)    #2 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #3 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #4 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #5 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #6 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #7 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #8 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #9 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #10 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #11 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #12 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #13 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #14 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #15 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #16 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #17 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #18 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #19 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #20 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #21 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #22 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #23 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #24 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/window.cpp:621 in gui2::window::draw()====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 1 at 0x7b74000e9992 by main thread:    #0 gui2::window::draw() src/gui/widgets/window.cpp:625 (wesnoth-debug+0x3c479b1)    #1 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #2 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #3 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #4 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #5 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #6 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #7 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #8 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #9 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #10 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #11 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #12 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #13 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #14 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #15 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #16 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #17 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #18 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #19 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #20 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #21 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #22 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #23 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 1 at 0x7b74000e9992 by thread T11:    #0 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:510 (wesnoth-debug+0x3c4516e)    #1 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:255 (wesnoth-debug+0x4a8f910)    #2 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #3 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #4 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #5 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #6 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #7 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #8 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #9 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #10 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #11 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #12 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #13 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #14 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #15 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #16 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #17 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #18 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #19 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #20 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #21 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #22 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #23 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 2496 at 0x7b74000e9200 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:53 (wesnoth-debug+0x422ee24)    #2 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #3 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #4 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #5 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #6 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #7 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #8 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #9 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #10 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #11 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #12 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #13 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #14 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #15 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #16 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #17 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #18 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #19 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #20 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #21 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #22 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #23 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #24 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/window.cpp:625 in gui2::window::draw()====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b64000fa210 by main thread:    #0 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:194 (wesnoth-debug+0x47c82b3)    #1 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #2 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #3 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #4 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #5 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #6 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #7 gui2::scrollbar_container::calculate_best_size() const src/gui/widgets/scrollbar_container.cpp:295 (wesnoth-debug+0x470fac7)    #8 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #9 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #10 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #11 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #12 gui2::container_base::calculate_best_size() const src/gui/widgets/container_base.cpp:152 (wesnoth-debug+0x4390472)    #13 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #14 gui2::window::layout() src/gui/widgets/window.cpp:892 (wesnoth-debug+0x3c4c4b9)    #15 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #16 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #17 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #18 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #19 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #20 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #21 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #22 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #23 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #24 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #25 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #26 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #27 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #28 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #29 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #30 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #31 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #32 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #33 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #34 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #35 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #36 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #37 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #38 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b64000fa210 by thread T11:    #0 gui2::widget::set_layout_size(point const&) src/gui/widgets/widget.cpp:334 (wesnoth-debug+0x47cae50)    #1 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:330 (wesnoth-debug+0x476197b)    #2 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #3 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #4 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #5 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #6 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #7 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #8 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #9 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #10 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #11 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #12 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #13 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #14 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #15 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #16 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #17 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #18 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #19 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #20 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #21 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #22 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #23 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #24 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #25 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #26 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #27 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #28 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #29 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #30 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 1040 at 0x7b64000fa000 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07af2)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #4 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #5 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #6 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #7 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #8 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #9 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #10 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #11 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #12 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #13 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #14 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #15 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #16 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #17 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #18 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #19 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #20 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #21 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #22 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #23 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #24 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #25 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #26 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #27 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #28 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:194 in gui2::widget::get_best_size() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b64000fa280 by main thread:    #0 std::__shared_ptr<t_string_base const, (__gnu_cxx::_Lock_policy)2>::get() const /usr/include/c++/7/bits/shared_ptr_base.h:1258 (wesnoth-debug+0x39512dd)    #1 std::__shared_ptr_access<t_string_base const, (__gnu_cxx::_Lock_policy)2, false, false>::_M_get() const /usr/include/c++/7/bits/shared_ptr_base.h:975 (wesnoth-debug+0x394951b)    #2 std::__shared_ptr_access<t_string_base const, (__gnu_cxx::_Lock_policy)2, false, false>::operator*() const /usr/include/c++/7/bits/shared_ptr_base.h:962 (wesnoth-debug+0x3942600)    #3 t_string::get() const src/tstring.hpp:195 (wesnoth-debug+0x393d878)    #4 t_string::empty() const src/tstring.hpp:182 (wesnoth-debug+0x393d6b1)    #5 gui2::styled_widget::calculate_best_size() const src/gui/widgets/styled_widget.cpp:247 (wesnoth-debug+0x475f3c5)    #6 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #7 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #8 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #9 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #10 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #11 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #12 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #13 gui2::scrollbar_container::calculate_best_size() const src/gui/widgets/scrollbar_container.cpp:295 (wesnoth-debug+0x470fac7)    #14 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #15 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #16 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #17 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #18 gui2::container_base::calculate_best_size() const src/gui/widgets/container_base.cpp:152 (wesnoth-debug+0x4390472)    #19 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #20 gui2::window::layout() src/gui/widgets/window.cpp:892 (wesnoth-debug+0x3c4c4b9)    #21 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #22 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #23 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #25 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #26 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #27 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #28 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #29 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #30 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #31 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #32 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #33 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #34 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #35 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #36 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #37 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #38 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #39 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #40 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #41 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #42 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #43 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #44 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b64000fa280 by thread T11:    #0 std::__shared_ptr<t_string_base const, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<t_string_base const, (__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:1034 (wesnoth-debug+0x65d5d19)    #1 std::shared_ptr<t_string_base const>::operator=(std::shared_ptr<t_string_base const> const&) /usr/include/c++/7/bits/shared_ptr.h:93 (wesnoth-debug+0x65d5e31)    #2 t_string::operator=(t_string const&) src/tstring.cpp:635 (wesnoth-debug+0x65d502b)    #3 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:329 (wesnoth-debug+0x4761861)    #4 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #5 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #6 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #7 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #8 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #9 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #10 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #11 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #12 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #13 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #14 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #15 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #16 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #17 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #18 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #19 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #20 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #21 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #22 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #23 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #24 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #25 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #26 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #27 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #28 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #29 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #30 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #31 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #32 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 1040 at 0x7b64000fa000 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07af2)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #4 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #5 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #6 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #7 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #8 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #9 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #10 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #11 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #12 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #13 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #14 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #15 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #16 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #17 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #18 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #19 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #20 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #21 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #22 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #23 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #24 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #25 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #26 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #27 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #28 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/shared_ptr_base.h:1258 in std::__shared_ptr<t_string_base const, (__gnu_cxx::_Lock_policy)2>::get() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 1 at 0x7b1400309434 by main thread:    #0 t_string_base::str[abi:cxx11]() const src/tstring.cpp:563 (wesnoth-debug+0x65d4292)    #1 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&() const src/tstring.hpp:101 (wesnoth-debug+0x393d63f)    #2 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&() const src/tstring.hpp:185 (wesnoth-debug+0x393d766)    #3 gui2::styled_widget::get_best_text_size(point, point) const src/gui/widgets/styled_widget.cpp:461 (wesnoth-debug+0x47667b7)    #4 gui2::styled_widget::calculate_best_size() const src/gui/widgets/styled_widget.cpp:259 (wesnoth-debug+0x475fd9c)    #5 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #6 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #7 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #8 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #9 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #10 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #11 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #12 gui2::scrollbar_container::calculate_best_size() const src/gui/widgets/scrollbar_container.cpp:295 (wesnoth-debug+0x470fac7)    #13 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #14 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #15 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #16 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #17 gui2::container_base::calculate_best_size() const src/gui/widgets/container_base.cpp:152 (wesnoth-debug+0x4390472)    #18 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #19 gui2::window::layout() src/gui/widgets/window.cpp:892 (wesnoth-debug+0x3c4c4b9)    #20 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #21 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #22 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #23 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #25 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #26 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #27 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #28 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #29 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #30 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #31 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #32 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #33 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #34 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #35 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #36 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #37 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #38 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #39 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #40 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #41 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #42 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #43 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 1 at 0x7b1400309434 by thread T11:    #0 t_string_base::t_string_base(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/tstring.cpp:259 (wesnoth-debug+0x65d1191)    #1 t_string::t_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/tstring.cpp:624 (wesnoth-debug+0x65d4e73)    #2 impl_gettext src/scripting/lua_common.cpp:73 (wesnoth-debug+0x4a7b7db)    #3 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #4 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:468 (wesnoth-debug+0x61b53a0)    #5 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #6 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #7 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #8 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #9 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #10 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #11 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #12 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #13 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #14 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #15 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #16 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #17 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #18 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #19 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #20 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #21 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #22 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #23 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #24 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #25 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #26 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #27 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #28 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #29 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #30 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #31 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 72 at 0x7b14003093f0 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 t_string::t_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/tstring.cpp:624 (wesnoth-debug+0x65d4e3b)    #2 impl_gettext src/scripting/lua_common.cpp:73 (wesnoth-debug+0x4a7b7db)    #3 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #4 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:468 (wesnoth-debug+0x61b53a0)    #5 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #6 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #7 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #8 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #9 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #10 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #11 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #12 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #13 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #14 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #15 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #16 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #17 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #18 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #19 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #20 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #21 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #22 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #23 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #24 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #25 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #26 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #27 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #28 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #29 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #30 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #31 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/tstring.cpp:563 in t_string_base::str[abi:cxx11]() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 1 at 0x7b1400309420 by main thread:    #0 unsigned int ucs4_convert_impl::utf8_impl::read<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&) src/serialization/ucs4_convert_impl.hpp:98 (wesnoth-debug+0x3d9ace0)    #1 ucs4_convert_impl::enableif<std::vector<unsigned int, std::allocator<unsigned int> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::value_type>::type unicode_cast<std::vector<unsigned int, std::allocator<unsigned int> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/serialization/unicode_cast.hpp:75 (wesnoth-debug+0x3d98dec)    #2 font::pango_text::set_text(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) src/font/text.cpp:292 (wesnoth-debug+0x670b146)    #3 gui2::styled_widget::get_best_text_size(point, point) const src/gui/widgets/styled_widget.cpp:461 (wesnoth-debug+0x47667c4)    #4 gui2::styled_widget::calculate_best_size() const src/gui/widgets/styled_widget.cpp:259 (wesnoth-debug+0x475fd9c)    #5 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #6 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #7 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #8 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #9 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #10 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #11 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #12 gui2::scrollbar_container::calculate_best_size() const src/gui/widgets/scrollbar_container.cpp:295 (wesnoth-debug+0x470fac7)    #13 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #14 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #15 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #16 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #17 gui2::container_base::calculate_best_size() const src/gui/widgets/container_base.cpp:152 (wesnoth-debug+0x4390472)    #18 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #19 gui2::window::layout() src/gui/widgets/window.cpp:892 (wesnoth-debug+0x3c4c4b9)    #20 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #21 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #22 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #23 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #25 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #26 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #27 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #28 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #29 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #30 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #31 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #32 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #33 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #34 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #35 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #36 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #37 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #38 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #39 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #40 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #41 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #42 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #43 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b1400309420 by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 t_string::t_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/tstring.cpp:624 (wesnoth-debug+0x65d4e3b)    #2 impl_gettext src/scripting/lua_common.cpp:73 (wesnoth-debug+0x4a7b7db)    #3 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #4 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:468 (wesnoth-debug+0x61b53a0)    #5 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #6 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #7 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #8 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #9 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #10 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #11 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #12 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #13 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #14 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #15 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #16 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #17 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #18 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #19 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #20 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #21 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #22 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #23 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #24 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #25 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #26 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #27 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #28 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #29 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #30 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #31 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 72 at 0x7b14003093f0 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 t_string::t_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/tstring.cpp:624 (wesnoth-debug+0x65d4e3b)    #2 impl_gettext src/scripting/lua_common.cpp:73 (wesnoth-debug+0x4a7b7db)    #3 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #4 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:468 (wesnoth-debug+0x61b53a0)    #5 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #6 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #7 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #8 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #9 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #10 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #11 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #12 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #13 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #14 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #15 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #16 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #17 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #18 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #19 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #20 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #21 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #22 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #23 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #24 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #25 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #26 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #27 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #28 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #29 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #30 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #31 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/serialization/ucs4_convert_impl.hpp:98 in unsigned int ucs4_convert_impl::utf8_impl::read<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 1 at 0x7b64000d8690 by main thread:    #0 gui2::styled_widget::get_best_text_size(point, point) const src/gui/widgets/styled_widget.cpp:461 (wesnoth-debug+0x4766751)    #1 gui2::styled_widget::calculate_best_size() const src/gui/widgets/styled_widget.cpp:259 (wesnoth-debug+0x475fd9c)    #2 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #3 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #4 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #5 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #6 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #7 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #8 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #9 gui2::scrollbar_container::calculate_best_size() const src/gui/widgets/scrollbar_container.cpp:295 (wesnoth-debug+0x470fac7)    #10 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #11 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #12 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #13 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #14 gui2::container_base::calculate_best_size() const src/gui/widgets/container_base.cpp:152 (wesnoth-debug+0x4390472)    #15 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #16 gui2::window::layout() src/gui/widgets/window.cpp:892 (wesnoth-debug+0x3c4c4b9)    #17 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #18 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #19 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #20 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #21 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #22 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #23 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #24 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #25 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #26 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #27 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #28 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #29 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #30 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #31 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #32 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #33 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #34 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #35 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #36 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #37 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #38 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #39 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #40 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 1 at 0x7b64000d8690 by thread T11:    #0 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:341 (wesnoth-debug+0x4761e2e)    #1 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #2 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #3 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #4 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #5 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #6 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #7 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #8 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #9 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #10 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #11 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #12 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #13 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #14 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #15 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #16 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #17 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #18 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #19 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #20 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #21 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #22 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #23 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #24 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #25 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #26 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #27 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #28 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #29 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 1040 at 0x7b64000d8400 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07af2)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #4 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #5 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #6 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #7 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #8 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #9 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #10 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #11 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #12 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #13 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #14 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #15 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #16 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #17 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #18 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #19 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #20 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #21 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #22 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #23 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #24 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #25 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #26 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #27 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #28 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/styled_widget.cpp:461 in gui2::styled_widget::get_best_text_size(point, point) const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 1 at 0x7b1400152e24 by main thread:    #0 t_string_base::str[abi:cxx11]() const src/tstring.cpp:563 (wesnoth-debug+0x65d4292)    #1 t_string_base::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&() const src/tstring.hpp:101 (wesnoth-debug+0x393d63f)    #2 t_string::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&() const src/tstring.hpp:185 (wesnoth-debug+0x393d766)    #3 gui2::styled_widget::get_best_text_size(point, point) const src/gui/widgets/styled_widget.cpp:461 (wesnoth-debug+0x47667b7)    #4 gui2::styled_widget::calculate_best_size() const src/gui/widgets/styled_widget.cpp:259 (wesnoth-debug+0x475fd9c)    #5 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #6 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #7 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #8 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #9 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #10 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #11 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #12 gui2::scrollbar_container::calculate_best_size() const src/gui/widgets/scrollbar_container.cpp:295 (wesnoth-debug+0x470fac7)    #13 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #14 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #15 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #16 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #17 gui2::container_base::calculate_best_size() const src/gui/widgets/container_base.cpp:152 (wesnoth-debug+0x4390472)    #18 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #19 gui2::window::layout() src/gui/widgets/window.cpp:892 (wesnoth-debug+0x3c4c4b9)    #20 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #21 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #22 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #23 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #25 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #26 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #27 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #28 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #29 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #30 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #31 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #32 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #33 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #34 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #35 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #36 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #37 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #38 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #39 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #40 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #41 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #42 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #43 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 1 at 0x7b1400152e24 by thread T11:    #0 t_string_base::t_string_base(char const*) src/tstring.cpp:330 (wesnoth-debug+0x65d1e17)    #1 t_string::t_string(char const*) src/tstring.cpp:614 (wesnoth-debug+0x65d4c9f)    #2 t_string::operator=(char const*) src/tstring.cpp:641 (wesnoth-debug+0x65d5095)    #3 luaW_totstring(lua_State*, int, t_string&) src/scripting/lua_common.cpp:573 (wesnoth-debug+0x4a7e806)    #4 luaW_checktstring(lua_State*, int) src/scripting/lua_common.cpp:593 (wesnoth-debug+0x4a7e901)    #5 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:577 (wesnoth-debug+0x4a94c12)    #6 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #7 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #8 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #9 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #10 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #11 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #12 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #13 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #14 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #15 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #16 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #17 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #18 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #19 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #20 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #21 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #22 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #23 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #24 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #25 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #26 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #27 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #28 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #29 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #30 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #31 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #32 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #33 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 72 at 0x7b1400152de0 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 t_string::t_string(char const*) src/tstring.cpp:614 (wesnoth-debug+0x65d4c6b)    #2 t_string::operator=(char const*) src/tstring.cpp:641 (wesnoth-debug+0x65d5095)    #3 luaW_totstring(lua_State*, int, t_string&) src/scripting/lua_common.cpp:573 (wesnoth-debug+0x4a7e806)    #4 luaW_checktstring(lua_State*, int) src/scripting/lua_common.cpp:593 (wesnoth-debug+0x4a7e901)    #5 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:577 (wesnoth-debug+0x4a94c12)    #6 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #7 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #8 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #9 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #10 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #11 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #12 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #13 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #14 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #15 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #16 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #17 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #18 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #19 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #20 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #21 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #22 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #23 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #24 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #25 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #26 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #27 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #28 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #29 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #30 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #31 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #32 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #33 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/tstring.cpp:563 in t_string_base::str[abi:cxx11]() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 1 at 0x7b3000052200 by main thread:    #0 unsigned int ucs4_convert_impl::utf8_impl::read<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&) src/serialization/ucs4_convert_impl.hpp:98 (wesnoth-debug+0x3d9ace0)    #1 ucs4_convert_impl::enableif<std::vector<unsigned int, std::allocator<unsigned int> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::value_type>::type unicode_cast<std::vector<unsigned int, std::allocator<unsigned int> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/serialization/unicode_cast.hpp:75 (wesnoth-debug+0x3d98dec)    #2 font::pango_text::set_text(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) src/font/text.cpp:292 (wesnoth-debug+0x670b146)    #3 gui2::styled_widget::get_best_text_size(point, point) const src/gui/widgets/styled_widget.cpp:461 (wesnoth-debug+0x47667c4)    #4 gui2::styled_widget::calculate_best_size() const src/gui/widgets/styled_widget.cpp:259 (wesnoth-debug+0x475fd9c)    #5 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #6 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #7 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #8 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #9 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #10 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #11 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #12 gui2::scrollbar_container::calculate_best_size() const src/gui/widgets/scrollbar_container.cpp:295 (wesnoth-debug+0x470fac7)    #13 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #14 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #15 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #16 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #17 gui2::container_base::calculate_best_size() const src/gui/widgets/container_base.cpp:152 (wesnoth-debug+0x4390472)    #18 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #19 gui2::window::layout() src/gui/widgets/window.cpp:892 (wesnoth-debug+0x3c4c4b9)    #20 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #21 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #22 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #23 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #25 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #26 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #27 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #28 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #29 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #30 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #31 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #32 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #33 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #34 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #35 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #36 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #37 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #38 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #39 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #40 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #41 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #42 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #43 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b3000052200 by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219 (wesnoth-debug+0x671f812)    #2 t_string_base::t_string_base(char const*) src/tstring.cpp:330 (wesnoth-debug+0x65d1d86)    #3 t_string::t_string(char const*) src/tstring.cpp:614 (wesnoth-debug+0x65d4c9f)    #4 t_string::operator=(char const*) src/tstring.cpp:641 (wesnoth-debug+0x65d5095)    #5 luaW_totstring(lua_State*, int, t_string&) src/scripting/lua_common.cpp:573 (wesnoth-debug+0x4a7e806)    #6 luaW_checktstring(lua_State*, int) src/scripting/lua_common.cpp:593 (wesnoth-debug+0x4a7e901)    #7 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:577 (wesnoth-debug+0x4a94c12)    #8 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #9 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #10 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #11 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #12 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #13 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #14 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #15 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #16 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #17 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #18 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #19 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #20 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #21 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #22 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #23 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #24 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #25 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #26 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #27 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #28 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #29 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #30 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #31 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #32 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #33 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #34 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #35 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 179 at 0x7b3000052200 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219 (wesnoth-debug+0x671f812)    #2 t_string_base::t_string_base(char const*) src/tstring.cpp:330 (wesnoth-debug+0x65d1d86)    #3 t_string::t_string(char const*) src/tstring.cpp:614 (wesnoth-debug+0x65d4c9f)    #4 t_string::operator=(char const*) src/tstring.cpp:641 (wesnoth-debug+0x65d5095)    #5 luaW_totstring(lua_State*, int, t_string&) src/scripting/lua_common.cpp:573 (wesnoth-debug+0x4a7e806)    #6 luaW_checktstring(lua_State*, int) src/scripting/lua_common.cpp:593 (wesnoth-debug+0x4a7e901)    #7 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:577 (wesnoth-debug+0x4a94c12)    #8 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #9 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #10 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #11 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #12 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #13 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #14 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #15 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #16 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #17 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #18 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #19 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #20 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #21 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #22 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #23 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #24 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #25 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #26 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #27 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #28 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #29 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #30 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #31 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #32 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #33 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #34 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #35 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/serialization/ucs4_convert_impl.hpp:98 in unsigned int ucs4_convert_impl::utf8_impl::read<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 1 at 0x7b30000522a0 by main thread:    #0 unsigned int ucs4_convert_impl::utf8_impl::read<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&) src/serialization/ucs4_convert_impl.hpp:115 (wesnoth-debug+0x3d9aebf)    #1 ucs4_convert_impl::enableif<std::vector<unsigned int, std::allocator<unsigned int> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::value_type>::type unicode_cast<std::vector<unsigned int, std::allocator<unsigned int> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/serialization/unicode_cast.hpp:75 (wesnoth-debug+0x3d98dec)    #2 font::pango_text::set_text(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) src/font/text.cpp:292 (wesnoth-debug+0x670b146)    #3 gui2::styled_widget::get_best_text_size(point, point) const src/gui/widgets/styled_widget.cpp:461 (wesnoth-debug+0x47667c4)    #4 gui2::styled_widget::calculate_best_size() const src/gui/widgets/styled_widget.cpp:259 (wesnoth-debug+0x475fd9c)    #5 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #6 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #7 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #8 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #9 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #10 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #11 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #12 gui2::scrollbar_container::calculate_best_size() const src/gui/widgets/scrollbar_container.cpp:295 (wesnoth-debug+0x470fac7)    #13 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #14 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #15 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #16 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #17 gui2::container_base::calculate_best_size() const src/gui/widgets/container_base.cpp:152 (wesnoth-debug+0x4390472)    #18 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #19 gui2::window::layout() src/gui/widgets/window.cpp:892 (wesnoth-debug+0x3c4c4b9)    #20 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #21 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #22 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #23 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #25 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #26 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #27 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #28 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #29 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #30 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #31 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #32 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #33 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #34 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #35 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #36 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #37 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #38 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #39 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #40 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #41 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #42 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #43 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b30000522a0 by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219 (wesnoth-debug+0x671f812)    #2 t_string_base::t_string_base(char const*) src/tstring.cpp:330 (wesnoth-debug+0x65d1d86)    #3 t_string::t_string(char const*) src/tstring.cpp:614 (wesnoth-debug+0x65d4c9f)    #4 t_string::operator=(char const*) src/tstring.cpp:641 (wesnoth-debug+0x65d5095)    #5 luaW_totstring(lua_State*, int, t_string&) src/scripting/lua_common.cpp:573 (wesnoth-debug+0x4a7e806)    #6 luaW_checktstring(lua_State*, int) src/scripting/lua_common.cpp:593 (wesnoth-debug+0x4a7e901)    #7 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:577 (wesnoth-debug+0x4a94c12)    #8 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #9 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #10 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #11 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #12 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #13 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #14 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #15 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #16 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #17 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #18 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #19 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #20 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #21 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #22 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #23 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #24 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #25 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #26 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #27 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #28 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #29 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #30 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #31 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #32 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #33 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #34 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #35 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 179 at 0x7b3000052200 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219 (wesnoth-debug+0x671f812)    #2 t_string_base::t_string_base(char const*) src/tstring.cpp:330 (wesnoth-debug+0x65d1d86)    #3 t_string::t_string(char const*) src/tstring.cpp:614 (wesnoth-debug+0x65d4c9f)    #4 t_string::operator=(char const*) src/tstring.cpp:641 (wesnoth-debug+0x65d5095)    #5 luaW_totstring(lua_State*, int, t_string&) src/scripting/lua_common.cpp:573 (wesnoth-debug+0x4a7e806)    #6 luaW_checktstring(lua_State*, int) src/scripting/lua_common.cpp:593 (wesnoth-debug+0x4a7e901)    #7 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:577 (wesnoth-debug+0x4a94c12)    #8 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #9 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #10 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #11 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #12 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #13 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #14 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #15 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #16 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #17 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #18 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #19 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #20 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #21 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #22 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #23 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #24 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #25 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #26 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #27 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #28 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #29 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #30 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #31 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #32 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #33 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #34 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #35 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/serialization/ucs4_convert_impl.hpp:115 in unsigned int ucs4_convert_impl::utf8_impl::read<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 1 at 0x7b30000522b0 by main thread:    #0 unsigned int ucs4_convert_impl::utf8_impl::read<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&) src/serialization/ucs4_convert_impl.hpp:98 (wesnoth-debug+0x3d9ace0)    #1 ucs4_convert_impl::enableif<std::vector<unsigned int, std::allocator<unsigned int> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::value_type>::type unicode_cast<std::vector<unsigned int, std::allocator<unsigned int> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/serialization/unicode_cast.hpp:75 (wesnoth-debug+0x3d98dec)    #2 font::pango_text::set_text(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) src/font/text.cpp:292 (wesnoth-debug+0x670b146)    #3 gui2::styled_widget::get_best_text_size(point, point) const src/gui/widgets/styled_widget.cpp:461 (wesnoth-debug+0x47667c4)    #4 gui2::styled_widget::calculate_best_size() const src/gui/widgets/styled_widget.cpp:259 (wesnoth-debug+0x475fd9c)    #5 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #6 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #7 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #8 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #9 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #10 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #11 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #12 gui2::scrollbar_container::calculate_best_size() const src/gui/widgets/scrollbar_container.cpp:295 (wesnoth-debug+0x470fac7)    #13 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #14 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #15 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #16 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #17 gui2::container_base::calculate_best_size() const src/gui/widgets/container_base.cpp:152 (wesnoth-debug+0x4390472)    #18 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #19 gui2::window::layout() src/gui/widgets/window.cpp:892 (wesnoth-debug+0x3c4c4b9)    #20 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #21 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #22 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #23 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #25 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #26 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #27 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #28 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #29 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #30 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #31 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #32 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #33 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #34 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #35 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #36 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #37 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #38 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #39 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #40 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #41 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #42 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #43 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 1 at 0x7b30000522b0 by thread T11:    #0 memcpy <null> (libtsan.so.0+0x31065)    #1 void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:225 (wesnoth-debug+0x671f8af)    #2 t_string_base::t_string_base(char const*) src/tstring.cpp:330 (wesnoth-debug+0x65d1d86)    #3 t_string::t_string(char const*) src/tstring.cpp:614 (wesnoth-debug+0x65d4c9f)    #4 t_string::operator=(char const*) src/tstring.cpp:641 (wesnoth-debug+0x65d5095)    #5 luaW_totstring(lua_State*, int, t_string&) src/scripting/lua_common.cpp:573 (wesnoth-debug+0x4a7e806)    #6 luaW_checktstring(lua_State*, int) src/scripting/lua_common.cpp:593 (wesnoth-debug+0x4a7e901)    #7 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:577 (wesnoth-debug+0x4a94c12)    #8 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #9 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #10 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #11 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #12 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #13 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #14 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #15 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #16 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #17 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #18 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #19 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #20 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #21 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #22 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #23 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #24 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #25 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #26 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #27 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #28 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #29 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #30 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #31 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #32 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #33 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #34 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #35 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 179 at 0x7b3000052200 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag) /usr/include/c++/7/bits/basic_string.tcc:219 (wesnoth-debug+0x671f812)    #2 t_string_base::t_string_base(char const*) src/tstring.cpp:330 (wesnoth-debug+0x65d1d86)    #3 t_string::t_string(char const*) src/tstring.cpp:614 (wesnoth-debug+0x65d4c9f)    #4 t_string::operator=(char const*) src/tstring.cpp:641 (wesnoth-debug+0x65d5095)    #5 luaW_totstring(lua_State*, int, t_string&) src/scripting/lua_common.cpp:573 (wesnoth-debug+0x4a7e806)    #6 luaW_checktstring(lua_State*, int) src/scripting/lua_common.cpp:593 (wesnoth-debug+0x4a7e901)    #7 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:577 (wesnoth-debug+0x4a94c12)    #8 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #9 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #10 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #11 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #12 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #13 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #14 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #15 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #16 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #17 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #18 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #19 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #20 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #21 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #22 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #23 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #24 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #25 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #26 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #27 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #28 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #29 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #30 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #31 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #32 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #33 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #34 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #35 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/serialization/ucs4_convert_impl.hpp:98 in unsigned int ucs4_convert_impl::utf8_impl::read<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 4 at 0x7b6c0007c63c by main thread:    #0 gui2::widget::get_visible() const src/gui/widgets/widget.cpp:502 (wesnoth-debug+0x47cea04)    #1 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:750 (wesnoth-debug+0x46b95ef)    #2 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #3 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #4 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #5 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #6 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #7 gui2::scrollbar_container::calculate_best_size() const src/gui/widgets/scrollbar_container.cpp:295 (wesnoth-debug+0x470fac7)    #8 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #9 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #10 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #11 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #12 gui2::container_base::calculate_best_size() const src/gui/widgets/container_base.cpp:152 (wesnoth-debug+0x4390472)    #13 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #14 gui2::window::layout() src/gui/widgets/window.cpp:892 (wesnoth-debug+0x3c4c4b9)    #15 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #16 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #17 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #18 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #19 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #20 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #21 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #22 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #23 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #24 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #25 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #26 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #27 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #28 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #29 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #30 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #31 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #32 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #33 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #34 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #35 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #36 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #37 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #38 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 4 at 0x7b6c0007c63c by thread T11:    #0 gui2::widget::set_visible(gui2::widget::visibility) src/gui/widgets/widget.cpp:483 (wesnoth-debug+0x47ce2f3)    #1 lua_gui2::intf_set_dialog_visible(lua_State*) src/scripting/lua_gui2.cpp:923 (wesnoth-debug+0x4a98bb9)    #2 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #3 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #4 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #5 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #6 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #7 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #8 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #9 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #10 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #11 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #12 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #13 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #14 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #15 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #16 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #17 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #18 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #19 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #20 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #21 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #22 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #23 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #24 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #25 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #26 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #27 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #28 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #29 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 1752 at 0x7b6c0007c400 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_panel::build() const src/gui/widgets/panel.cpp:201 (wesnoth-debug+0x3ae7836)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #4 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #5 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #6 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #7 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #8 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #9 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #10 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #11 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #12 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #13 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #14 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #15 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #16 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #17 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #18 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #19 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #20 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #21 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #22 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #23 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #24 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #25 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #26 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #27 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #28 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:502 in gui2::widget::get_visible() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 4 at 0x7b640008c73c by main thread:    #0 gui2::widget::get_visible() const src/gui/widgets/widget.cpp:502 (wesnoth-debug+0x47cea04)    #1 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:750 (wesnoth-debug+0x46b95ef)    #2 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #3 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #4 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #5 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #6 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #7 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #8 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #9 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #10 gui2::scrollbar_container::calculate_best_size() const src/gui/widgets/scrollbar_container.cpp:295 (wesnoth-debug+0x470fac7)    #11 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #12 gui2::grid::child::get_best_size() const src/gui/widgets/grid.cpp:757 (wesnoth-debug+0x46b9e31)    #13 gui2::grid::calculate_best_size() const src/gui/widgets/grid.cpp:436 (wesnoth-debug+0x46af5a4)    #14 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #15 gui2::container_base::calculate_best_size() const src/gui/widgets/container_base.cpp:152 (wesnoth-debug+0x4390472)    #16 gui2::widget::get_best_size() const src/gui/widgets/widget.cpp:196 (wesnoth-debug+0x47c8465)    #17 gui2::window::layout() src/gui/widgets/window.cpp:892 (wesnoth-debug+0x3c4c4b9)    #18 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #19 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #20 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #21 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #22 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #23 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #24 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #25 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #26 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #27 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #28 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #29 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #30 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #31 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #32 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #33 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #34 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #35 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #36 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #37 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #38 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #39 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #40 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #41 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 4 at 0x7b640008c73c by thread T11:    #0 gui2::widget::set_visible(gui2::widget::visibility) src/gui/widgets/widget.cpp:483 (wesnoth-debug+0x47ce2f3)    #1 lua_gui2::intf_set_dialog_visible(lua_State*) src/scripting/lua_gui2.cpp:923 (wesnoth-debug+0x4a98bb9)    #2 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #3 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #4 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #5 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #6 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #7 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #8 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #9 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #10 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #11 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #12 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #13 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #14 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #15 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #16 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #17 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #18 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #19 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #20 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #21 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #22 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #23 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #24 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #25 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #26 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #27 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #28 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #29 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 1032 at 0x7b640008c500 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_button::build() const src/gui/widgets/button.cpp:247 (wesnoth-debug+0x39718e0)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #4 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #5 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #6 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #7 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #8 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #9 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #10 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #11 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #12 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #13 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #14 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #15 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #16 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #17 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #18 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #19 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #20 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #21 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #22 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #23 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #24 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #25 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #26 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #27 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #28 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #29 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #30 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:502 in gui2::widget::get_visible() const====================================WARNING: ThreadSanitizer: data race (pid=17519)  Write of size 1 at 0x7b5400260818 by main thread:    #0 gui2::canvas::set_is_dirty(bool) src/gui/core/canvas.hpp:180 (wesnoth-debug+0x3a0a357)    #1 gui2::canvas::set_width(unsigned int) src/gui/core/canvas.hpp:145 (wesnoth-debug+0x476d23e)    #2 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:270 (wesnoth-debug+0x47606d3)    #3 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #4 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #5 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #6 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #7 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #8 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #9 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #10 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #11 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #12 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #13 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #14 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #15 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #16 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #17 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #18 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #19 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #20 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #21 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #22 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #23 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #24 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #25 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #26 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #27 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #28 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #29 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #30 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #31 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #32 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #33 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #34 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #35 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #36 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #37 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #38 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #39 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 1 at 0x7b5400260818 by thread T11:    #0 gui2::canvas::set_is_dirty(bool) src/gui/core/canvas.hpp:180 (wesnoth-debug+0x3a0a357)    #1 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:174 (wesnoth-debug+0x3a0a2b0)    #2 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:395 (wesnoth-debug+0x4763f44)    #3 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #4 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #5 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #6 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #7 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #8 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #9 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #10 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #11 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #12 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #13 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #14 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #15 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #16 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #17 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #18 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #19 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #20 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #21 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #22 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #23 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #24 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #25 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #26 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #27 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #28 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #29 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #30 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #31 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #32 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 576 at 0x7b5400260700 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<gui2::canvas>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x4772fe2)    #2 std::allocator_traits<std::allocator<gui2::canvas> >::allocate(std::allocator<gui2::canvas>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4772627)    #3 std::_Vector_base<gui2::canvas, std::allocator<gui2::canvas> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172 (wesnoth-debug+0x4771c06)    #4 std::_Vector_base<gui2::canvas, std::allocator<gui2::canvas> >::_M_create_storage(unsigned long) /usr/include/c++/7/bits/stl_vector.h:187 (wesnoth-debug+0x4770870)    #5 std::_Vector_base<gui2::canvas, std::allocator<gui2::canvas> >::_Vector_base(unsigned long, std::allocator<gui2::canvas> const&) /usr/include/c++/7/bits/stl_vector.h:138 (wesnoth-debug+0x476f246)    #6 std::vector<gui2::canvas, std::allocator<gui2::canvas> >::vector(unsigned long, std::allocator<gui2::canvas> const&) /usr/include/c++/7/bits/stl_vector.h:284 (wesnoth-debug+0x476def8)    #7 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:62 (wesnoth-debug+0x4757c42)    #8 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #9 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #10 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #11 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #12 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #13 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #14 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #15 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #16 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #17 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #18 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #19 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #20 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #21 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #22 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #23 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #24 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #25 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #26 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #27 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #28 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #29 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #30 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #31 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #32 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #33 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #34 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #35 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #36 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/core/canvas.hpp:180 in gui2::canvas::set_is_dirty(bool)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b5400260740 by main thread:    #0 surface::free_surface() src/sdl/surface.cpp:22 (wesnoth-debug+0x6a5e316)    #1 surface::assign_surface_internal(SDL_Surface*) src/sdl/surface.hpp:92 (wesnoth-debug+0x407985b)    #2 surface::assign(SDL_Surface*) src/sdl/surface.hpp:48 (wesnoth-debug+0x407973a)    #3 gui2::canvas::invalidate_cache() src/gui/core/canvas.cpp:1513 (wesnoth-debug+0x41541d3)    #4 gui2::canvas::set_width(unsigned int) src/gui/core/canvas.hpp:146 (wesnoth-debug+0x476d26f)    #5 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:270 (wesnoth-debug+0x47606d3)    #6 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #7 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #8 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #9 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #10 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #11 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #12 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #13 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #14 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #15 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #16 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #17 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #18 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #19 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #20 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #21 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #22 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #23 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #24 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #25 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #26 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #27 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #28 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #29 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #30 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #31 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #32 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #33 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #34 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #35 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #36 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #37 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #38 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #39 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #40 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #41 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #42 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b5400260740 by thread T11:    #0 surface::assign_surface_internal(SDL_Surface*) src/sdl/surface.hpp:93 (wesnoth-debug+0x407988c)    #1 surface::assign(SDL_Surface*) src/sdl/surface.hpp:48 (wesnoth-debug+0x407973a)    #2 gui2::canvas::invalidate_cache() src/gui/core/canvas.cpp:1513 (wesnoth-debug+0x41541d3)    #3 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:175 (wesnoth-debug+0x3a0a2e1)    #4 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:395 (wesnoth-debug+0x4763f44)    #5 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #6 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #7 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #8 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #9 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #10 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #11 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #12 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #18 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #19 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #20 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #21 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #22 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #23 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #24 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #25 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #26 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #27 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #28 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #29 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #30 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #31 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #32 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #33 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #34 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 576 at 0x7b5400260700 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<gui2::canvas>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x4772fe2)    #2 std::allocator_traits<std::allocator<gui2::canvas> >::allocate(std::allocator<gui2::canvas>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4772627)    #3 std::_Vector_base<gui2::canvas, std::allocator<gui2::canvas> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172 (wesnoth-debug+0x4771c06)    #4 std::_Vector_base<gui2::canvas, std::allocator<gui2::canvas> >::_M_create_storage(unsigned long) /usr/include/c++/7/bits/stl_vector.h:187 (wesnoth-debug+0x4770870)    #5 std::_Vector_base<gui2::canvas, std::allocator<gui2::canvas> >::_Vector_base(unsigned long, std::allocator<gui2::canvas> const&) /usr/include/c++/7/bits/stl_vector.h:138 (wesnoth-debug+0x476f246)    #6 std::vector<gui2::canvas, std::allocator<gui2::canvas> >::vector(unsigned long, std::allocator<gui2::canvas> const&) /usr/include/c++/7/bits/stl_vector.h:284 (wesnoth-debug+0x476def8)    #7 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:62 (wesnoth-debug+0x4757c42)    #8 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #9 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #10 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #11 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #12 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #13 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #14 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #15 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #16 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #17 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #18 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #19 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #20 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #21 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #22 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #23 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #24 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #25 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #26 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #27 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #28 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #29 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #30 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #31 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #32 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #33 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #34 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #35 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #36 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/sdl/surface.cpp:22 in surface::free_surface()====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b5400260720 by main thread:    #0 __gnu_cxx::__normal_iterator<std::shared_ptr<gui2::canvas::shape>*, std::vector<std::shared_ptr<gui2::canvas::shape>, std::allocator<std::shared_ptr<gui2::canvas::shape> > > >::__normal_iterator(std::shared_ptr<gui2::canvas::shape>* const&) /usr/include/c++/7/bits/stl_iterator.h:780 (wesnoth-debug+0x416584e)    #1 std::vector<std::shared_ptr<gui2::canvas::shape>, std::allocator<std::shared_ptr<gui2::canvas::shape> > >::end() /usr/include/c++/7/bits/stl_vector.h:582 (wesnoth-debug+0x416267d)    #2 gui2::canvas::invalidate_cache() src/gui/core/canvas.cpp:1518 (wesnoth-debug+0x41542ff)    #3 gui2::canvas::set_width(unsigned int) src/gui/core/canvas.hpp:146 (wesnoth-debug+0x476d26f)    #4 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:270 (wesnoth-debug+0x47606d3)    #5 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #6 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #7 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #8 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #9 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #10 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #11 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #12 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #13 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #14 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #15 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #16 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #17 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #18 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #19 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #20 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #21 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #22 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #23 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #24 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #25 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #26 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #27 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #28 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #29 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #30 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #31 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #32 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #33 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #34 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #35 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #36 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #37 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #38 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #39 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #40 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #41 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b5400260720 by thread T11:    #0 std::vector<std::shared_ptr<gui2::canvas::shape>, std::allocator<std::shared_ptr<gui2::canvas::shape> > >::_M_erase_at_end(std::shared_ptr<gui2::canvas::shape>*) /usr/include/c++/7/bits/stl_vector.h:1514 (wesnoth-debug+0x4165b83)    #1 std::vector<std::shared_ptr<gui2::canvas::shape>, std::allocator<std::shared_ptr<gui2::canvas::shape> > >::clear() /usr/include/c++/7/bits/stl_vector.h:1248 (wesnoth-debug+0x4162aa9)    #2 gui2::canvas::invalidate_cache() src/gui/core/canvas.cpp:1519 (wesnoth-debug+0x4154377)    #3 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:175 (wesnoth-debug+0x3a0a2e1)    #4 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:395 (wesnoth-debug+0x4763f44)    #5 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #6 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #7 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #8 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #9 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #10 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #11 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #12 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #18 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #19 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #20 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #21 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #22 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #23 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #24 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #25 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #26 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #27 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #28 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #29 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #30 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #31 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #32 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #33 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #34 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 576 at 0x7b5400260700 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<gui2::canvas>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x4772fe2)    #2 std::allocator_traits<std::allocator<gui2::canvas> >::allocate(std::allocator<gui2::canvas>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4772627)    #3 std::_Vector_base<gui2::canvas, std::allocator<gui2::canvas> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172 (wesnoth-debug+0x4771c06)    #4 std::_Vector_base<gui2::canvas, std::allocator<gui2::canvas> >::_M_create_storage(unsigned long) /usr/include/c++/7/bits/stl_vector.h:187 (wesnoth-debug+0x4770870)    #5 std::_Vector_base<gui2::canvas, std::allocator<gui2::canvas> >::_Vector_base(unsigned long, std::allocator<gui2::canvas> const&) /usr/include/c++/7/bits/stl_vector.h:138 (wesnoth-debug+0x476f246)    #6 std::vector<gui2::canvas, std::allocator<gui2::canvas> >::vector(unsigned long, std::allocator<gui2::canvas> const&) /usr/include/c++/7/bits/stl_vector.h:284 (wesnoth-debug+0x476def8)    #7 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:62 (wesnoth-debug+0x4757c42)    #8 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #9 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #10 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #11 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #12 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #13 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #14 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #15 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #16 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #17 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #18 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #19 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #20 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #21 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #22 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #23 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #24 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #25 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #26 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #27 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #28 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #29 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #30 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #31 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #32 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #33 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #34 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #35 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #36 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/stl_iterator.h:780 in __gnu_cxx::__normal_iterator<std::shared_ptr<gui2::canvas::shape>*, std::vector<std::shared_ptr<gui2::canvas::shape>, std::allocator<std::shared_ptr<gui2::canvas::shape> > > >::__normal_iterator(std::shared_ptr<gui2::canvas::shape>* const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Write of size 4 at 0x7b64000fa208 by main thread:    #0 gui2::widget::place(point const&, point const&) src/gui/widgets/widget.cpp:242 (wesnoth-debug+0x47c959f)    #1 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:283 (wesnoth-debug+0x4760b11)    #2 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #3 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #4 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #5 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #6 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #7 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #8 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #9 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #10 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #11 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #12 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #13 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #14 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #15 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #16 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #17 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #18 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #19 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #20 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #21 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #22 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #23 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #24 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #25 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #26 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #27 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #28 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #29 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #30 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #31 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #32 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #33 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #34 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #35 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #36 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #37 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #38 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous read of size 4 at 0x7b64000fa208 by thread T11:    #0 gui2::widget::get_width() const src/gui/widgets/widget.cpp:324 (wesnoth-debug+0x47cabd0)    #1 gui2::styled_widget::get_text_maximum_width() const src/gui/widgets/styled_widget.cpp:405 (wesnoth-debug+0x47645d1)    #2 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:370 (wesnoth-debug+0x4762b4e)    #3 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #4 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #5 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #6 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #7 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #8 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #9 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #10 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #11 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #12 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #13 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #14 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #15 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #16 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #17 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #18 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #19 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #20 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #21 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #22 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #23 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #24 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #25 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #26 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #27 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #28 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #29 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #30 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #31 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #32 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 1040 at 0x7b64000fa000 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07af2)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #4 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #5 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #6 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #7 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #8 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #9 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #10 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #11 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #12 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #13 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #14 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #15 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #16 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #17 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #18 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #19 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #20 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #21 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #22 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #23 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #24 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #25 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #26 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #27 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #28 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:242 in gui2::widget::place(point const&, point const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Write of size 4 at 0x7b64000fa20c by main thread:    #0 gui2::widget::place(point const&, point const&) src/gui/widgets/widget.cpp:243 (wesnoth-debug+0x47c96df)    #1 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:283 (wesnoth-debug+0x4760b11)    #2 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #3 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #4 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #5 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #6 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #7 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #8 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #9 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #10 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #11 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #12 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #13 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #14 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #15 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #16 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #17 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #18 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #19 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #20 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #21 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #22 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #23 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #24 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #25 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #26 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #27 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #28 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #29 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #30 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #31 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #32 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #33 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #34 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #35 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #36 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #37 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #38 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous read of size 4 at 0x7b64000fa20c by thread T11:    #0 gui2::widget::get_height() const src/gui/widgets/widget.cpp:329 (wesnoth-debug+0x47cacfc)    #1 gui2::styled_widget::get_text_maximum_height() const src/gui/widgets/styled_widget.cpp:412 (wesnoth-debug+0x47647d8)    #2 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:371 (wesnoth-debug+0x4762c5d)    #3 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #4 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #5 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #6 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #7 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #8 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #9 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #10 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #11 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #12 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #13 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #14 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #15 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #16 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #17 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #18 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #19 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #20 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #21 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #22 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #23 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #24 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #25 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #26 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #27 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #28 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #29 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #30 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #31 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #32 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 1040 at 0x7b64000fa000 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07af2)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #4 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #5 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #6 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #7 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #8 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #9 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #10 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #11 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #12 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #13 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #14 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #15 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #16 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #17 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #18 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #19 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #20 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #21 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #22 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #23 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #24 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #25 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #26 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #27 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #28 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:243 in gui2::widget::place(point const&, point const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Write of size 1 at 0x7b64000fa238 by main thread:    #0 gui2::widget::set_is_dirty(bool) src/gui/widgets/widget.cpp:465 (wesnoth-debug+0x47cdcec)    #1 gui2::widget::place(point const&, point const&) src/gui/widgets/widget.cpp:257 (wesnoth-debug+0x47c97e2)    #2 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:283 (wesnoth-debug+0x4760b11)    #3 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #4 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #5 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #6 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #7 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #8 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #9 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #10 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #11 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #12 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #13 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #14 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #15 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #16 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #17 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #18 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #19 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #20 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #21 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #22 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #23 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #24 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #25 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #26 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #27 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #28 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #29 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #30 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #31 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #32 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #33 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #34 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #35 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #36 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #37 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #38 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #39 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 1 at 0x7b64000fa238 by thread T11:    #0 gui2::widget::set_is_dirty(bool) src/gui/widgets/widget.cpp:465 (wesnoth-debug+0x47cdcec)    #1 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:332 (wesnoth-debug+0x4761bc2)    #2 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #3 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #4 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #5 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #6 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #7 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #8 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #9 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #10 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #11 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #12 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #13 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #14 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #15 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #16 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #17 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #18 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #19 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #20 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #21 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #22 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #23 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #24 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #25 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #26 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #27 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #28 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #29 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #30 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 1040 at 0x7b64000fa000 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07af2)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #4 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #5 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #6 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #7 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #8 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #9 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #10 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #11 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #12 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #13 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #14 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #15 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #16 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #17 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #18 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #19 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #20 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #21 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #22 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #23 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #24 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #25 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #26 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #27 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #28 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:465 in gui2::widget::set_is_dirty(bool)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Write of size 8 at 0x7b140015a8f0 by main thread:    #0 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x4014789)    #1 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #2 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #3 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #4 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #5 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762e59)    #6 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #7 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #8 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #9 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #10 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #11 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #12 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #13 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #14 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #15 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #16 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #17 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #18 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #19 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #20 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #21 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #22 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #23 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #25 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #26 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #27 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #28 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #29 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #30 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #31 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #32 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #33 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #34 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #35 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #36 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #37 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #38 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #39 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #40 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #41 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #42 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #43 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b140015a8f0 by thread T11:    #0 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x4014789)    #1 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #2 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #3 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #4 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #5 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762e59)    #6 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #7 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #8 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #9 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #10 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #11 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #12 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #13 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #14 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #15 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #16 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #17 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #18 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #19 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #20 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #21 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #22 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #23 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #24 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #25 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #26 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #27 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #28 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #29 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #30 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #31 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #32 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #33 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #34 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #35 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 80 at 0x7b140015a8b0 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x39e16a2)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x39e0178)    #3 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x39ddd03)    #4 std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x39db0d1)    #5 std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x39d92e1)    #6 std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, wfl::variant, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x39d6906)    #7 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a0e4)    #8 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #9 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762e59)    #10 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:75 (wesnoth-debug+0x4758443)    #11 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #12 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #13 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #14 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #15 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #16 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #17 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #18 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #19 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #20 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #21 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #22 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #23 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #24 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #25 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #26 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #27 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #28 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #29 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #30 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #31 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #32 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #33 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #34 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #35 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #36 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #37 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #38 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #39 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race (/home/shadowm/src/wesnoth-1.14/wesnoth-debug+0x4014789) in std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b140015a8f8 by main thread:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:698 (wesnoth-debug+0x3ab6281)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762e59)    #7 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #8 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #9 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #10 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #11 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #12 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #13 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #14 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #15 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #16 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #17 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #18 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #19 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #20 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #21 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #22 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #23 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #25 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #26 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #27 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #28 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #29 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #30 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #31 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #32 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #33 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #34 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #35 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #36 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #37 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #38 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #39 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #40 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #41 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #42 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #43 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #44 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b140015a8f8 by thread T11:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:704 (wesnoth-debug+0x3ab650d)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762e59)    #7 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #8 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #9 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #10 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #11 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #12 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #13 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #14 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #15 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #16 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #17 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #18 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #19 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #20 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #21 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #22 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #23 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #24 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #25 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #26 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #27 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #28 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #29 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #30 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #31 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #32 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #33 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #34 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #35 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #36 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 80 at 0x7b140015a8b0 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x39e16a2)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x39e0178)    #3 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x39ddd03)    #4 std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x39db0d1)    #5 std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x39d92e1)    #6 std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, wfl::variant, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x39d6906)    #7 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a0e4)    #8 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #9 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762e59)    #10 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:75 (wesnoth-debug+0x4758443)    #11 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #12 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #13 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #14 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #15 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #16 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #17 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #18 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #19 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #20 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #21 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #22 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #23 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #24 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #25 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #26 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #27 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #28 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #29 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #30 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #31 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #32 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #33 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #34 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #35 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #36 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #37 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #38 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #39 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/shared_ptr_base.h:698 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b1000069c80 by main thread:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:703 (wesnoth-debug+0x3ab644a)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762e59)    #7 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #8 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #9 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #10 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #11 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #12 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #13 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #14 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #15 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #16 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #17 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #18 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #19 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #20 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #21 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #22 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #23 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #25 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #26 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #27 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #28 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #29 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #30 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #31 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #32 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #33 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #34 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #35 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #36 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #37 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #38 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #39 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #40 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #41 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #42 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #43 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #44 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b1000069c80 by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x4028974)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4027671)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x40256db)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_string, std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, wfl::variant_string*, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021fc3)    #5 std::__shared_ptr<wfl::variant_string, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401f09a)    #6 std::shared_ptr<wfl::variant_string>::shared_ptr<std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b634)    #7 std::shared_ptr<wfl::variant_string> std::allocate_shared<wfl::variant_string, std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x401880e)    #8 std::shared_ptr<wfl::variant_string> std::make_shared<wfl::variant_string, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) <null> (wesnoth-debug+0x4015a43)    #9 wfl::variant::variant(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/formula/variant.cpp:172 (wesnoth-debug+0x400943f)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762dc9)    #11 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #12 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 56 at 0x7b1000069c80 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x4028974)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4027671)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x40256db)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_string, std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, wfl::variant_string*, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021fc3)    #5 std::__shared_ptr<wfl::variant_string, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401f09a)    #6 std::shared_ptr<wfl::variant_string>::shared_ptr<std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b634)    #7 std::shared_ptr<wfl::variant_string> std::allocate_shared<wfl::variant_string, std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x401880e)    #8 std::shared_ptr<wfl::variant_string> std::make_shared<wfl::variant_string, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) <null> (wesnoth-debug+0x4015a43)    #9 wfl::variant::variant(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/formula/variant.cpp:172 (wesnoth-debug+0x400943f)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762dc9)    #11 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #12 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/shared_ptr_base.h:703 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Atomic write of size 4 at 0x7b1000069c88 by main thread:    #0 __tsan_atomic32_fetch_add <null> (libtsan.so.0+0x631e5)    #1 __exchange_and_add /usr/include/c++/7/ext/atomicity.h:49 (wesnoth-debug+0x3929efa)    #2 __exchange_and_add_dispatch /usr/include/c++/7/ext/atomicity.h:82 (wesnoth-debug+0x392a12a)    #3 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/include/c++/7/bits/shared_ptr_base.h:151 (wesnoth-debug+0x394977f)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:703 (wesnoth-debug+0x3ab64dc)    #5 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #6 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #7 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #8 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #9 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762e59)    #11 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #12 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #13 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #14 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #15 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #16 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #17 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #18 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #19 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #20 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #21 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #22 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #23 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #24 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #25 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #26 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #27 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #28 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #29 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #30 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #31 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #32 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #33 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #34 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #35 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #36 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #37 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #38 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #39 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #40 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #41 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #42 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #43 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #44 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #45 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #46 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #47 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #48 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b1000069c88 by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x4028974)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4027671)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x40256db)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_string, std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, wfl::variant_string*, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021fc3)    #5 std::__shared_ptr<wfl::variant_string, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401f09a)    #6 std::shared_ptr<wfl::variant_string>::shared_ptr<std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b634)    #7 std::shared_ptr<wfl::variant_string> std::allocate_shared<wfl::variant_string, std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x401880e)    #8 std::shared_ptr<wfl::variant_string> std::make_shared<wfl::variant_string, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) <null> (wesnoth-debug+0x4015a43)    #9 wfl::variant::variant(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/formula/variant.cpp:172 (wesnoth-debug+0x400943f)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762dc9)    #11 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #12 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 56 at 0x7b1000069c80 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x4028974)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4027671)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x40256db)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_string, std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, wfl::variant_string*, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021fc3)    #5 std::__shared_ptr<wfl::variant_string, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401f09a)    #6 std::shared_ptr<wfl::variant_string>::shared_ptr<std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b634)    #7 std::shared_ptr<wfl::variant_string> std::allocate_shared<wfl::variant_string, std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x401880e)    #8 std::shared_ptr<wfl::variant_string> std::make_shared<wfl::variant_string, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) <null> (wesnoth-debug+0x4015a43)    #9 wfl::variant::variant(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/formula/variant.cpp:172 (wesnoth-debug+0x400943f)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762dc9)    #11 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #12 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x631e5) in __tsan_atomic32_fetch_add====================================WARNING: ThreadSanitizer: data race (pid=17519)  Write of size 8 at 0x7b14005c8db0 by main thread:    #0 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x4014789)    #1 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #2 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #3 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #4 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #5 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4763081)    #6 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #7 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #8 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #9 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #10 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #11 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #12 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #13 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #14 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #15 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #16 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #17 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #18 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #19 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #20 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #21 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #22 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #23 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #25 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #26 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #27 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #28 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #29 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #30 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #31 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #32 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #33 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #34 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #35 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #36 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #37 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #38 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #39 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #40 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #41 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #42 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #43 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b14005c8db0 by thread T11:    #0 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x4014789)    #1 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #2 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #3 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #4 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #5 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4763081)    #6 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #7 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #8 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #9 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #10 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #11 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #12 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #13 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #14 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #15 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #16 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #17 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #18 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #19 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #20 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #21 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #22 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #23 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #24 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #25 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #26 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #27 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #28 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #29 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #30 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #31 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #32 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #33 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #34 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #35 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 80 at 0x7b14005c8d70 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x39e16a2)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x39e0178)    #3 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x39ddd03)    #4 std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x39db0d1)    #5 std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x39d92e1)    #6 std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, wfl::variant, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x39d6906)    #7 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a0e4)    #8 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #9 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4763081)    #10 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:75 (wesnoth-debug+0x4758443)    #11 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #12 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #13 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #14 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #15 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #16 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #17 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #18 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #19 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #20 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #21 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #22 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #23 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #24 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #25 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #26 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #27 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #28 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #29 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #30 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #31 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #32 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #33 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #34 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #35 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #36 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #37 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #38 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #39 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race (/home/shadowm/src/wesnoth-1.14/wesnoth-debug+0x4014789) in std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b14005c8db8 by main thread:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:698 (wesnoth-debug+0x3ab6281)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4763081)    #7 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #8 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #9 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #10 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #11 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #12 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #13 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #14 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #15 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #16 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #17 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #18 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #19 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #20 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #21 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #22 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #23 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #25 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #26 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #27 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #28 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #29 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #30 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #31 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #32 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #33 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #34 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #35 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #36 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #37 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #38 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #39 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #40 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #41 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #42 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #43 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #44 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b14005c8db8 by thread T11:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:704 (wesnoth-debug+0x3ab650d)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4763081)    #7 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #8 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #9 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #10 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #11 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #12 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #13 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #14 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #15 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #16 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #17 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #18 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #19 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #20 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #21 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #22 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #23 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #24 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #25 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #26 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #27 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #28 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #29 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #30 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #31 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #32 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #33 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #34 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #35 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #36 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 80 at 0x7b14005c8d70 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x39e16a2)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x39e0178)    #3 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x39ddd03)    #4 std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x39db0d1)    #5 std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x39d92e1)    #6 std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, wfl::variant, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x39d6906)    #7 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a0e4)    #8 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #9 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4763081)    #10 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:75 (wesnoth-debug+0x4758443)    #11 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #12 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #13 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #14 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #15 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #16 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #17 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #18 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #19 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #20 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #21 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #22 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #23 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #24 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #25 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #26 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #27 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #28 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #29 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #30 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #31 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #32 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #33 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #34 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #35 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #36 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #37 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #38 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #39 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/shared_ptr_base.h:698 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b080021a940 by main thread:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:703 (wesnoth-debug+0x3ab644a)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4763081)    #7 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #8 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #9 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #10 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #11 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #12 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #13 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #14 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #15 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #16 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #17 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #18 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #19 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #20 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #21 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #22 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #23 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #25 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #26 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #27 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #28 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #29 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #30 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #31 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #32 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #33 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #34 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #35 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #36 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #37 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #38 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #39 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #40 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #41 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #42 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #43 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #44 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b080021a940 by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x402816a)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4026c33)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4023a95)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, wfl::variant_int*, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021597)    #5 std::__shared_ptr<wfl::variant_int, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401e86a)    #6 std::shared_ptr<wfl::variant_int>::shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b274)    #7 std::shared_ptr<wfl::variant_int> std::allocate_shared<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4017fd4)    #8 std::shared_ptr<wfl::variant_int> std::make_shared<wfl::variant_int, int&>(int&) /usr/include/c++/7/bits/shared_ptr.h:707 (wesnoth-debug+0x40152cb)    #9 wfl::variant::variant(int) src/formula/variant.cpp:148 (wesnoth-debug+0x4008f55)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4762ff1)    #11 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #12 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 32 at 0x7b080021a940 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x402816a)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4026c33)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4023a95)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, wfl::variant_int*, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021597)    #5 std::__shared_ptr<wfl::variant_int, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401e86a)    #6 std::shared_ptr<wfl::variant_int>::shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b274)    #7 std::shared_ptr<wfl::variant_int> std::allocate_shared<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4017fd4)    #8 std::shared_ptr<wfl::variant_int> std::make_shared<wfl::variant_int, int&>(int&) /usr/include/c++/7/bits/shared_ptr.h:707 (wesnoth-debug+0x40152cb)    #9 wfl::variant::variant(int) src/formula/variant.cpp:148 (wesnoth-debug+0x4008f55)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4762ff1)    #11 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #12 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/shared_ptr_base.h:703 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Atomic write of size 4 at 0x7b080021a948 by main thread:    #0 __tsan_atomic32_fetch_add <null> (libtsan.so.0+0x631e5)    #1 __exchange_and_add /usr/include/c++/7/ext/atomicity.h:49 (wesnoth-debug+0x3929efa)    #2 __exchange_and_add_dispatch /usr/include/c++/7/ext/atomicity.h:82 (wesnoth-debug+0x392a12a)    #3 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/include/c++/7/bits/shared_ptr_base.h:151 (wesnoth-debug+0x394977f)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:703 (wesnoth-debug+0x3ab64dc)    #5 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #6 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #7 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #8 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #9 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4763081)    #11 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #12 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #13 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #14 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #15 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #16 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #17 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #18 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #19 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #20 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #21 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #22 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #23 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #24 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #25 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #26 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #27 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #28 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #29 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #30 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #31 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #32 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #33 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #34 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #35 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #36 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #37 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #38 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #39 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #40 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #41 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #42 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #43 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #44 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #45 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #46 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #47 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #48 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b080021a948 by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x402816a)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4026c33)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4023a95)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, wfl::variant_int*, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021597)    #5 std::__shared_ptr<wfl::variant_int, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401e86a)    #6 std::shared_ptr<wfl::variant_int>::shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b274)    #7 std::shared_ptr<wfl::variant_int> std::allocate_shared<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4017fd4)    #8 std::shared_ptr<wfl::variant_int> std::make_shared<wfl::variant_int, int&>(int&) /usr/include/c++/7/bits/shared_ptr.h:707 (wesnoth-debug+0x40152cb)    #9 wfl::variant::variant(int) src/formula/variant.cpp:148 (wesnoth-debug+0x4008f55)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4762ff1)    #11 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #12 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 32 at 0x7b080021a940 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x402816a)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4026c33)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4023a95)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, wfl::variant_int*, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021597)    #5 std::__shared_ptr<wfl::variant_int, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401e86a)    #6 std::shared_ptr<wfl::variant_int>::shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b274)    #7 std::shared_ptr<wfl::variant_int> std::allocate_shared<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4017fd4)    #8 std::shared_ptr<wfl::variant_int> std::make_shared<wfl::variant_int, int&>(int&) /usr/include/c++/7/bits/shared_ptr.h:707 (wesnoth-debug+0x40152cb)    #9 wfl::variant::variant(int) src/formula/variant.cpp:148 (wesnoth-debug+0x4008f55)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4762ff1)    #11 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #12 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x631e5) in __tsan_atomic32_fetch_add====================================WARNING: ThreadSanitizer: data race (pid=17519)  Write of size 8 at 0x7b140038f2b0 by main thread:    #0 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x4014789)    #1 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #2 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #3 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #4 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #5 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x47632f8)    #6 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #7 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #8 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #9 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #10 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #11 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #12 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #13 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #14 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #15 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #16 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #17 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #18 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #19 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #20 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #21 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #22 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #23 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #25 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #26 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #27 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #28 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #29 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #30 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #31 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #32 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #33 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #34 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #35 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #36 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #37 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #38 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #39 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #40 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #41 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #42 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #43 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b140038f2b0 by thread T11:    #0 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x4014789)    #1 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #2 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #3 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #4 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #5 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x47632f8)    #6 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #7 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #8 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #9 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #10 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #11 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #12 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #13 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #14 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #15 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #16 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #17 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #18 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #19 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #20 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #21 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #22 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #23 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #24 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #25 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #26 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #27 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #28 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #29 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #30 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #31 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #32 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #33 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #34 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #35 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 80 at 0x7b140038f270 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x39e16a2)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x39e0178)    #3 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x39ddd03)    #4 std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x39db0d1)    #5 std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x39d92e1)    #6 std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, wfl::variant, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x39d6906)    #7 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a0e4)    #8 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #9 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x47632f8)    #10 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:75 (wesnoth-debug+0x4758443)    #11 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #12 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #13 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #14 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #15 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #16 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #17 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #18 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #19 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #20 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #21 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #22 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #23 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #24 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #25 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #26 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #27 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #28 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #29 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #30 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #31 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #32 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #33 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #34 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #35 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #36 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #37 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #38 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #39 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race (/home/shadowm/src/wesnoth-1.14/wesnoth-debug+0x4014789) in std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b140038f2b8 by main thread:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:698 (wesnoth-debug+0x3ab6281)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x47632f8)    #7 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #8 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #9 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #10 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #11 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #12 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #13 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #14 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #15 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #16 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #17 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #18 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #19 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #20 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #21 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #22 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #23 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #25 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #26 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #27 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #28 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #29 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #30 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #31 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #32 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #33 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #34 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #35 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #36 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #37 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #38 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #39 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #40 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #41 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #42 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #43 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #44 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b140038f2b8 by thread T11:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:704 (wesnoth-debug+0x3ab650d)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x47632f8)    #7 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #8 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #9 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #10 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #11 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #12 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #13 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #14 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #15 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #16 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #17 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #18 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #19 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #20 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #21 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #22 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #23 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #24 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #25 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #26 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #27 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #28 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #29 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #30 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #31 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #32 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #33 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #34 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #35 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #36 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 80 at 0x7b140038f270 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x39e16a2)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x39e0178)    #3 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x39ddd03)    #4 std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x39db0d1)    #5 std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x39d92e1)    #6 std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, wfl::variant, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x39d6906)    #7 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a0e4)    #8 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #9 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x47632f8)    #10 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:75 (wesnoth-debug+0x4758443)    #11 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #12 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #13 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #14 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #15 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #16 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #17 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #18 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #19 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #20 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #21 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #22 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #23 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #24 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #25 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #26 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #27 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #28 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #29 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #30 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #31 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #32 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #33 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #34 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #35 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #36 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #37 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #38 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #39 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/shared_ptr_base.h:698 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b08005479a0 by main thread:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:703 (wesnoth-debug+0x3ab644a)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x47632f8)    #7 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #8 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #9 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #10 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #11 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #12 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #13 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #14 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #15 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #16 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #17 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #18 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #19 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #20 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #21 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #22 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #23 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #25 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #26 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #27 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #28 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #29 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #30 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #31 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #32 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #33 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #34 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #35 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #36 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #37 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #38 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #39 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #40 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #41 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #42 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #43 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #44 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b08005479a0 by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x402816a)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4026c33)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4023a95)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, wfl::variant_int*, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021597)    #5 std::__shared_ptr<wfl::variant_int, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401e86a)    #6 std::shared_ptr<wfl::variant_int>::shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b274)    #7 std::shared_ptr<wfl::variant_int> std::allocate_shared<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4017fd4)    #8 std::shared_ptr<wfl::variant_int> std::make_shared<wfl::variant_int, int&>(int&) /usr/include/c++/7/bits/shared_ptr.h:707 (wesnoth-debug+0x40152cb)    #9 wfl::variant::variant(int) src/formula/variant.cpp:148 (wesnoth-debug+0x4008f55)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x4763268)    #11 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #12 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 32 at 0x7b08005479a0 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x402816a)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4026c33)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4023a95)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, wfl::variant_int*, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021597)    #5 std::__shared_ptr<wfl::variant_int, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401e86a)    #6 std::shared_ptr<wfl::variant_int>::shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b274)    #7 std::shared_ptr<wfl::variant_int> std::allocate_shared<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4017fd4)    #8 std::shared_ptr<wfl::variant_int> std::make_shared<wfl::variant_int, int&>(int&) /usr/include/c++/7/bits/shared_ptr.h:707 (wesnoth-debug+0x40152cb)    #9 wfl::variant::variant(int) src/formula/variant.cpp:148 (wesnoth-debug+0x4008f55)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x4763268)    #11 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #12 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/shared_ptr_base.h:703 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Atomic write of size 4 at 0x7b08005479a8 by main thread:    #0 __tsan_atomic32_fetch_add <null> (libtsan.so.0+0x631e5)    #1 __exchange_and_add /usr/include/c++/7/ext/atomicity.h:49 (wesnoth-debug+0x3929efa)    #2 __exchange_and_add_dispatch /usr/include/c++/7/ext/atomicity.h:82 (wesnoth-debug+0x392a12a)    #3 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/include/c++/7/bits/shared_ptr_base.h:151 (wesnoth-debug+0x394977f)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:703 (wesnoth-debug+0x3ab64dc)    #5 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #6 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #7 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #8 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #9 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x47632f8)    #11 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #12 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #13 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #14 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #15 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #16 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #17 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #18 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #19 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #20 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #21 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #22 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #23 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #24 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #25 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #26 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #27 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #28 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #29 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #30 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #31 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #32 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #33 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #34 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #35 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #36 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #37 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #38 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #39 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #40 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #41 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #42 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #43 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #44 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #45 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #46 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #47 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #48 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b08005479a8 by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x402816a)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4026c33)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4023a95)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, wfl::variant_int*, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021597)    #5 std::__shared_ptr<wfl::variant_int, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401e86a)    #6 std::shared_ptr<wfl::variant_int>::shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b274)    #7 std::shared_ptr<wfl::variant_int> std::allocate_shared<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4017fd4)    #8 std::shared_ptr<wfl::variant_int> std::make_shared<wfl::variant_int, int&>(int&) /usr/include/c++/7/bits/shared_ptr.h:707 (wesnoth-debug+0x40152cb)    #9 wfl::variant::variant(int) src/formula/variant.cpp:148 (wesnoth-debug+0x4008f55)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x4763268)    #11 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #12 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 32 at 0x7b08005479a0 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x402816a)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4026c33)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4023a95)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, wfl::variant_int*, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021597)    #5 std::__shared_ptr<wfl::variant_int, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401e86a)    #6 std::shared_ptr<wfl::variant_int>::shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b274)    #7 std::shared_ptr<wfl::variant_int> std::allocate_shared<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4017fd4)    #8 std::shared_ptr<wfl::variant_int> std::make_shared<wfl::variant_int, int&>(int&) /usr/include/c++/7/bits/shared_ptr.h:707 (wesnoth-debug+0x40152cb)    #9 wfl::variant::variant(int) src/formula/variant.cpp:148 (wesnoth-debug+0x4008f55)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x4763268)    #11 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #12 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x631e5) in __tsan_atomic32_fetch_add====================================WARNING: ThreadSanitizer: data race (pid=17519)  Write of size 8 at 0x7b140039ee90 by main thread:    #0 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x4014789)    #1 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #2 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #3 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #4 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #5 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763692)    #6 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #7 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #8 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #9 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #10 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #11 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #12 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #13 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #14 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #15 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #16 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #17 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #18 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #19 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #20 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #21 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #22 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #23 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #25 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #26 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #27 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #28 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #29 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #30 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #31 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #32 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #33 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #34 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #35 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #36 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #37 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #38 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #39 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #40 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #41 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #42 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #43 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b140039ee90 by thread T11:    #0 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x4014789)    #1 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #2 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #3 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #4 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #5 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763692)    #6 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #7 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #8 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #9 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #10 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #11 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #12 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #13 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #14 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #15 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #16 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #17 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #18 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #19 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #20 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #21 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #22 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #23 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #24 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #25 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #26 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #27 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #28 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #29 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #30 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #31 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #32 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #33 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #34 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #35 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 80 at 0x7b140039ee50 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x39e16a2)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x39e0178)    #3 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x39ddd03)    #4 std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x39db0d1)    #5 std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x39d92e1)    #6 std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, wfl::variant, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x39d6906)    #7 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a0e4)    #8 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #9 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763692)    #10 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:75 (wesnoth-debug+0x4758443)    #11 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #12 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #13 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #14 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #15 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #16 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #17 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #18 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #19 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #20 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #21 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #22 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #23 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #24 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #25 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #26 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #27 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #28 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #29 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #30 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #31 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #32 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #33 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #34 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #35 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #36 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #37 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #38 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #39 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race (/home/shadowm/src/wesnoth-1.14/wesnoth-debug+0x4014789) in std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b140039ee98 by main thread:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:698 (wesnoth-debug+0x3ab6281)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763692)    #7 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #8 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #9 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #10 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #11 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #12 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #13 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #14 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #15 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #16 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #17 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #18 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #19 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #20 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #21 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #22 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #23 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #25 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #26 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #27 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #28 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #29 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #30 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #31 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #32 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #33 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #34 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #35 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #36 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #37 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #38 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #39 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #40 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #41 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #42 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #43 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #44 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b140039ee98 by thread T11:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:704 (wesnoth-debug+0x3ab650d)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763692)    #7 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #8 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #9 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #10 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #11 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #12 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #13 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #14 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #15 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #16 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #17 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #18 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #19 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #20 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #21 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #22 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #23 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #24 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #25 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #26 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #27 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #28 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #29 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #30 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #31 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #32 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #33 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #34 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #35 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #36 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 80 at 0x7b140039ee50 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x39e16a2)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x39e0178)    #3 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x39ddd03)    #4 std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x39db0d1)    #5 std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x39d92e1)    #6 std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, wfl::variant, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x39d6906)    #7 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a0e4)    #8 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #9 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763692)    #10 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:75 (wesnoth-debug+0x4758443)    #11 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #12 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #13 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #14 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #15 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #16 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #17 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #18 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #19 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #20 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #21 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #22 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #23 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #24 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #25 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #26 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #27 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #28 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #29 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #30 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #31 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #32 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #33 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #34 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #35 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #36 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #37 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #38 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #39 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/shared_ptr_base.h:698 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b0c000e9010 by main thread:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:703 (wesnoth-debug+0x3ab644a)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763692)    #7 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #8 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #9 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #10 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #11 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #12 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #13 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #14 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #15 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #16 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #17 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #18 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #19 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #20 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #21 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #22 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #23 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #25 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #26 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #27 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #28 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #29 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #30 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #31 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #32 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #33 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #34 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #35 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #36 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #37 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #38 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #39 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #40 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #41 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #42 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #43 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #44 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b0c000e9010 by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x40286fb)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4027323)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4024eb3)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_list, std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, wfl::variant_list*, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021d23)    #5 std::__shared_ptr<wfl::variant_list, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401ee8e)    #6 std::shared_ptr<wfl::variant_list>::shared_ptr<std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b53e)    #7 std::shared_ptr<wfl::variant_list> std::allocate_shared<wfl::variant_list, std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4018582)    #8 std::shared_ptr<wfl::variant_list> std::make_shared<wfl::variant_list, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::vector<wfl::variant, std::allocator<wfl::variant> > const&) <null> (wesnoth-debug+0x4015842)    #9 wfl::variant::variant(std::vector<wfl::variant, std::allocator<wfl::variant> > const&) src/formula/variant.cpp:166 (wesnoth-debug+0x40092ea)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763602)    #11 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #12 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 48 at 0x7b0c000e9010 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x40286fb)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4027323)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4024eb3)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_list, std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, wfl::variant_list*, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021d23)    #5 std::__shared_ptr<wfl::variant_list, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401ee8e)    #6 std::shared_ptr<wfl::variant_list>::shared_ptr<std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b53e)    #7 std::shared_ptr<wfl::variant_list> std::allocate_shared<wfl::variant_list, std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4018582)    #8 std::shared_ptr<wfl::variant_list> std::make_shared<wfl::variant_list, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::vector<wfl::variant, std::allocator<wfl::variant> > const&) <null> (wesnoth-debug+0x4015842)    #9 wfl::variant::variant(std::vector<wfl::variant, std::allocator<wfl::variant> > const&) src/formula/variant.cpp:166 (wesnoth-debug+0x40092ea)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763602)    #11 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #12 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/shared_ptr_base.h:703 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Atomic write of size 4 at 0x7b0c000e9018 by main thread:    #0 __tsan_atomic32_fetch_add <null> (libtsan.so.0+0x631e5)    #1 __exchange_and_add /usr/include/c++/7/ext/atomicity.h:49 (wesnoth-debug+0x3929efa)    #2 __exchange_and_add_dispatch /usr/include/c++/7/ext/atomicity.h:82 (wesnoth-debug+0x392a12a)    #3 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/include/c++/7/bits/shared_ptr_base.h:151 (wesnoth-debug+0x394977f)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:703 (wesnoth-debug+0x3ab64dc)    #5 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #6 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #7 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #8 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #9 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763692)    #11 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #12 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:890 (wesnoth-debug+0x46bf9e2)    #13 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #14 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #15 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #16 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #17 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #18 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #19 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #20 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #21 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #22 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #23 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #24 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #25 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #26 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #27 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #28 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #29 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #30 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #31 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #32 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #33 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #34 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #35 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #36 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #37 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #38 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #39 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #40 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #41 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #42 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #43 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #44 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #45 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #46 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #47 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #48 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b0c000e9018 by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x40286fb)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4027323)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4024eb3)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_list, std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, wfl::variant_list*, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021d23)    #5 std::__shared_ptr<wfl::variant_list, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401ee8e)    #6 std::shared_ptr<wfl::variant_list>::shared_ptr<std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b53e)    #7 std::shared_ptr<wfl::variant_list> std::allocate_shared<wfl::variant_list, std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4018582)    #8 std::shared_ptr<wfl::variant_list> std::make_shared<wfl::variant_list, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::vector<wfl::variant, std::allocator<wfl::variant> > const&) <null> (wesnoth-debug+0x4015842)    #9 wfl::variant::variant(std::vector<wfl::variant, std::allocator<wfl::variant> > const&) src/formula/variant.cpp:166 (wesnoth-debug+0x40092ea)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763602)    #11 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #12 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 48 at 0x7b0c000e9010 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x40286fb)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4027323)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4024eb3)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_list, std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, wfl::variant_list*, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021d23)    #5 std::__shared_ptr<wfl::variant_list, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401ee8e)    #6 std::shared_ptr<wfl::variant_list>::shared_ptr<std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b53e)    #7 std::shared_ptr<wfl::variant_list> std::allocate_shared<wfl::variant_list, std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4018582)    #8 std::shared_ptr<wfl::variant_list> std::make_shared<wfl::variant_list, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::vector<wfl::variant, std::allocator<wfl::variant> > const&) <null> (wesnoth-debug+0x4015842)    #9 wfl::variant::variant(std::vector<wfl::variant, std::allocator<wfl::variant> > const&) src/formula/variant.cpp:166 (wesnoth-debug+0x40092ea)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763602)    #11 gui2::styled_widget::set_label(t_string const&) src/gui/widgets/styled_widget.cpp:331 (wesnoth-debug+0x4761ad8)    #12 lua_gui2::intf_set_dialog_value(lua_State*) src/scripting/lua_gui2.cpp:582 (wesnoth-debug+0x4a94dec)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x631e5) in __tsan_atomic32_fetch_add====================================WARNING: ThreadSanitizer: data race (pid=17519)  Write of size 1 at 0x7b54001d6b18 by main thread:    #0 gui2::canvas::set_is_dirty(bool) src/gui/core/canvas.hpp:180 (wesnoth-debug+0x3a0a357)    #1 gui2::canvas::set_width(unsigned int) src/gui/core/canvas.hpp:145 (wesnoth-debug+0x476d23e)    #2 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:270 (wesnoth-debug+0x47606d3)    #3 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #4 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #5 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #6 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #7 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #8 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #9 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #10 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #11 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #12 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #13 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #14 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #15 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #16 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #17 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #18 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #19 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #20 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #21 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #22 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #23 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #24 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #25 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #26 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #27 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #28 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #29 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #30 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #31 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #32 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #33 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #34 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #35 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #36 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #37 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #38 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #39 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 1 at 0x7b54001d6b18 by thread T11:    #0 gui2::canvas::set_is_dirty(bool) src/gui/core/canvas.hpp:180 (wesnoth-debug+0x3a0a357)    #1 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:174 (wesnoth-debug+0x3a0a2b0)    #2 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:395 (wesnoth-debug+0x4763f44)    #3 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #4 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #5 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #6 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #7 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #8 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #9 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #10 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #11 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #12 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #13 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #14 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #15 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #16 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #17 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #18 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #19 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #20 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #21 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #22 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #23 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #24 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #25 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #26 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #27 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #28 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #29 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #30 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #31 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #32 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 576 at 0x7b54001d6a00 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<gui2::canvas>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x4772fe2)    #2 std::allocator_traits<std::allocator<gui2::canvas> >::allocate(std::allocator<gui2::canvas>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4772627)    #3 std::_Vector_base<gui2::canvas, std::allocator<gui2::canvas> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172 (wesnoth-debug+0x4771c06)    #4 std::_Vector_base<gui2::canvas, std::allocator<gui2::canvas> >::_M_create_storage(unsigned long) /usr/include/c++/7/bits/stl_vector.h:187 (wesnoth-debug+0x4770870)    #5 std::_Vector_base<gui2::canvas, std::allocator<gui2::canvas> >::_Vector_base(unsigned long, std::allocator<gui2::canvas> const&) /usr/include/c++/7/bits/stl_vector.h:138 (wesnoth-debug+0x476f246)    #6 std::vector<gui2::canvas, std::allocator<gui2::canvas> >::vector(unsigned long, std::allocator<gui2::canvas> const&) /usr/include/c++/7/bits/stl_vector.h:284 (wesnoth-debug+0x476def8)    #7 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:62 (wesnoth-debug+0x4757c42)    #8 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #9 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #10 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #11 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #12 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #13 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #14 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #15 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #16 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #17 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #18 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #19 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #20 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #21 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #22 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #23 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #24 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #25 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #26 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #27 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #28 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #29 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #30 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #31 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #32 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #33 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #34 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #35 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #36 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/core/canvas.hpp:180 in gui2::canvas::set_is_dirty(bool)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b54001d6a40 by main thread:    #0 surface::free_surface() src/sdl/surface.cpp:22 (wesnoth-debug+0x6a5e316)    #1 surface::assign_surface_internal(SDL_Surface*) src/sdl/surface.hpp:92 (wesnoth-debug+0x407985b)    #2 surface::assign(SDL_Surface*) src/sdl/surface.hpp:48 (wesnoth-debug+0x407973a)    #3 gui2::canvas::invalidate_cache() src/gui/core/canvas.cpp:1513 (wesnoth-debug+0x41541d3)    #4 gui2::canvas::set_width(unsigned int) src/gui/core/canvas.hpp:146 (wesnoth-debug+0x476d26f)    #5 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:270 (wesnoth-debug+0x47606d3)    #6 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #7 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #8 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #9 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #10 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #11 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #12 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #13 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #14 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #15 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #16 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #17 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #18 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #19 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #20 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #21 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #22 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #23 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #24 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #25 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #26 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #27 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #28 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #29 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #30 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #31 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #32 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #33 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #34 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #35 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #36 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #37 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #38 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #39 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #40 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #41 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #42 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b54001d6a40 by thread T11:    #0 surface::assign_surface_internal(SDL_Surface*) src/sdl/surface.hpp:93 (wesnoth-debug+0x407988c)    #1 surface::assign(SDL_Surface*) src/sdl/surface.hpp:48 (wesnoth-debug+0x407973a)    #2 gui2::canvas::invalidate_cache() src/gui/core/canvas.cpp:1513 (wesnoth-debug+0x41541d3)    #3 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:175 (wesnoth-debug+0x3a0a2e1)    #4 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:395 (wesnoth-debug+0x4763f44)    #5 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #6 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #7 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #8 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #9 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #10 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #11 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #12 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #18 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #19 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #20 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #21 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #22 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #23 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #24 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #25 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #26 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #27 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #28 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #29 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #30 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #31 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #32 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #33 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #34 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 576 at 0x7b54001d6a00 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<gui2::canvas>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x4772fe2)    #2 std::allocator_traits<std::allocator<gui2::canvas> >::allocate(std::allocator<gui2::canvas>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4772627)    #3 std::_Vector_base<gui2::canvas, std::allocator<gui2::canvas> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172 (wesnoth-debug+0x4771c06)    #4 std::_Vector_base<gui2::canvas, std::allocator<gui2::canvas> >::_M_create_storage(unsigned long) /usr/include/c++/7/bits/stl_vector.h:187 (wesnoth-debug+0x4770870)    #5 std::_Vector_base<gui2::canvas, std::allocator<gui2::canvas> >::_Vector_base(unsigned long, std::allocator<gui2::canvas> const&) /usr/include/c++/7/bits/stl_vector.h:138 (wesnoth-debug+0x476f246)    #6 std::vector<gui2::canvas, std::allocator<gui2::canvas> >::vector(unsigned long, std::allocator<gui2::canvas> const&) /usr/include/c++/7/bits/stl_vector.h:284 (wesnoth-debug+0x476def8)    #7 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:62 (wesnoth-debug+0x4757c42)    #8 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #9 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #10 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #11 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #12 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #13 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #14 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #15 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #16 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #17 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #18 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #19 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #20 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #21 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #22 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #23 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #24 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #25 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #26 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #27 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #28 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #29 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #30 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #31 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #32 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #33 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #34 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #35 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #36 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/sdl/surface.cpp:22 in surface::free_surface()====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b54001d6a20 by main thread:    #0 __gnu_cxx::__normal_iterator<std::shared_ptr<gui2::canvas::shape>*, std::vector<std::shared_ptr<gui2::canvas::shape>, std::allocator<std::shared_ptr<gui2::canvas::shape> > > >::__normal_iterator(std::shared_ptr<gui2::canvas::shape>* const&) /usr/include/c++/7/bits/stl_iterator.h:780 (wesnoth-debug+0x416584e)    #1 std::vector<std::shared_ptr<gui2::canvas::shape>, std::allocator<std::shared_ptr<gui2::canvas::shape> > >::end() /usr/include/c++/7/bits/stl_vector.h:582 (wesnoth-debug+0x416267d)    #2 gui2::canvas::invalidate_cache() src/gui/core/canvas.cpp:1518 (wesnoth-debug+0x41542ff)    #3 gui2::canvas::set_width(unsigned int) src/gui/core/canvas.hpp:146 (wesnoth-debug+0x476d26f)    #4 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:270 (wesnoth-debug+0x47606d3)    #5 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #6 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #7 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #8 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #9 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #10 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #11 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #12 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #13 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #14 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #15 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #16 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #17 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #18 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #19 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #20 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #21 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #22 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #23 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #24 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #25 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #26 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #27 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #28 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #29 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #30 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #31 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #32 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #33 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #34 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #35 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #36 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #37 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #38 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #39 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #40 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #41 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b54001d6a20 by thread T11:    #0 std::vector<std::shared_ptr<gui2::canvas::shape>, std::allocator<std::shared_ptr<gui2::canvas::shape> > >::_M_erase_at_end(std::shared_ptr<gui2::canvas::shape>*) /usr/include/c++/7/bits/stl_vector.h:1514 (wesnoth-debug+0x4165b83)    #1 std::vector<std::shared_ptr<gui2::canvas::shape>, std::allocator<std::shared_ptr<gui2::canvas::shape> > >::clear() /usr/include/c++/7/bits/stl_vector.h:1248 (wesnoth-debug+0x4162aa9)    #2 gui2::canvas::invalidate_cache() src/gui/core/canvas.cpp:1519 (wesnoth-debug+0x4154377)    #3 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:175 (wesnoth-debug+0x3a0a2e1)    #4 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:395 (wesnoth-debug+0x4763f44)    #5 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #6 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #7 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #8 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #9 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #10 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #11 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #12 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #18 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #19 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #20 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #21 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #22 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #23 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #24 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #25 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #26 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #27 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #28 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #29 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #30 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #31 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #32 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #33 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #34 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 576 at 0x7b54001d6a00 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<gui2::canvas>::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x4772fe2)    #2 std::allocator_traits<std::allocator<gui2::canvas> >::allocate(std::allocator<gui2::canvas>&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4772627)    #3 std::_Vector_base<gui2::canvas, std::allocator<gui2::canvas> >::_M_allocate(unsigned long) /usr/include/c++/7/bits/stl_vector.h:172 (wesnoth-debug+0x4771c06)    #4 std::_Vector_base<gui2::canvas, std::allocator<gui2::canvas> >::_M_create_storage(unsigned long) /usr/include/c++/7/bits/stl_vector.h:187 (wesnoth-debug+0x4770870)    #5 std::_Vector_base<gui2::canvas, std::allocator<gui2::canvas> >::_Vector_base(unsigned long, std::allocator<gui2::canvas> const&) /usr/include/c++/7/bits/stl_vector.h:138 (wesnoth-debug+0x476f246)    #6 std::vector<gui2::canvas, std::allocator<gui2::canvas> >::vector(unsigned long, std::allocator<gui2::canvas> const&) /usr/include/c++/7/bits/stl_vector.h:284 (wesnoth-debug+0x476def8)    #7 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:62 (wesnoth-debug+0x4757c42)    #8 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #9 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #10 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #11 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #12 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #13 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #14 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #15 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #16 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #17 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #18 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #19 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #20 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #21 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #22 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #23 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #24 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #25 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #26 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #27 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #28 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #29 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #30 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #31 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #32 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #33 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #34 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #35 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #36 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/stl_iterator.h:780 in __gnu_cxx::__normal_iterator<std::shared_ptr<gui2::canvas::shape>*, std::vector<std::shared_ptr<gui2::canvas::shape>, std::allocator<std::shared_ptr<gui2::canvas::shape> > > >::__normal_iterator(std::shared_ptr<gui2::canvas::shape>* const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Write of size 4 at 0x7b64000d8608 by main thread:    #0 gui2::widget::place(point const&, point const&) src/gui/widgets/widget.cpp:242 (wesnoth-debug+0x47c959f)    #1 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:283 (wesnoth-debug+0x4760b11)    #2 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #3 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #4 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #5 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #6 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #7 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #8 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #9 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #10 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #11 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #12 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #13 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #14 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #15 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #16 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #17 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #18 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #19 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #20 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #21 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #22 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #23 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #24 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #25 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #26 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #27 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #28 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #29 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #30 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #31 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #32 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #33 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #34 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #35 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #36 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #37 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #38 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous read of size 4 at 0x7b64000d8608 by thread T11:    #0 gui2::widget::get_width() const src/gui/widgets/widget.cpp:324 (wesnoth-debug+0x47cabd0)    #1 gui2::styled_widget::get_text_maximum_width() const src/gui/widgets/styled_widget.cpp:405 (wesnoth-debug+0x47645d1)    #2 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:370 (wesnoth-debug+0x4762b4e)    #3 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #4 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #5 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #6 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #7 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #8 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #9 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #10 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #11 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #12 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #13 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #14 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #15 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #16 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #17 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #18 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #19 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #20 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #21 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #22 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #23 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #24 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #25 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #26 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #27 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #28 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #29 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #30 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #31 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #32 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 1040 at 0x7b64000d8400 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07af2)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #4 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #5 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #6 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #7 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #8 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #9 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #10 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #11 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #12 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #13 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #14 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #15 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #16 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #17 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #18 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #19 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #20 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #21 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #22 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #23 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #24 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #25 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #26 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #27 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #28 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:242 in gui2::widget::place(point const&, point const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Write of size 4 at 0x7b64000d860c by main thread:    #0 gui2::widget::place(point const&, point const&) src/gui/widgets/widget.cpp:243 (wesnoth-debug+0x47c96df)    #1 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:283 (wesnoth-debug+0x4760b11)    #2 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #3 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #4 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #5 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #6 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #7 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #8 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #9 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #10 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #11 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #12 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #13 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #14 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #15 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #16 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #17 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #18 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #19 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #20 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #21 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #22 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #23 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #24 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #25 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #26 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #27 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #28 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #29 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #30 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #31 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #32 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #33 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #34 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #35 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #36 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #37 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #38 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous read of size 4 at 0x7b64000d860c by thread T11:    #0 gui2::widget::get_height() const src/gui/widgets/widget.cpp:329 (wesnoth-debug+0x47cacfc)    #1 gui2::styled_widget::get_text_maximum_height() const src/gui/widgets/styled_widget.cpp:412 (wesnoth-debug+0x47647d8)    #2 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:371 (wesnoth-debug+0x4762c5d)    #3 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #4 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #5 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #6 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #7 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #8 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #9 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #10 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #11 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #12 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #13 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #14 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #15 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #16 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #17 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #18 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #19 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #20 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #21 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #22 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #23 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #24 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #25 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #26 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #27 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #28 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #29 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #30 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #31 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #32 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 1040 at 0x7b64000d8400 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07af2)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #4 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #5 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #6 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #7 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #8 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #9 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #10 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #11 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #12 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #13 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #14 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #15 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #16 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #17 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #18 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #19 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #20 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #21 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #22 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #23 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #24 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #25 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #26 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #27 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #28 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:243 in gui2::widget::place(point const&, point const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Write of size 1 at 0x7b64000d8638 by main thread:    #0 gui2::widget::set_is_dirty(bool) src/gui/widgets/widget.cpp:465 (wesnoth-debug+0x47cdcec)    #1 gui2::widget::place(point const&, point const&) src/gui/widgets/widget.cpp:257 (wesnoth-debug+0x47c97e2)    #2 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:283 (wesnoth-debug+0x4760b11)    #3 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #4 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #5 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #6 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #7 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #8 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #9 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #10 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #11 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #12 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #13 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #14 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #15 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #16 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #17 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #18 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #19 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #20 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #21 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #22 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #23 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #24 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #25 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #26 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #27 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #28 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #29 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #30 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #31 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #32 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #33 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #34 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #35 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #36 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #37 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #38 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #39 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 1 at 0x7b64000d8638 by thread T11:    #0 gui2::widget::set_is_dirty(bool) src/gui/widgets/widget.cpp:465 (wesnoth-debug+0x47cdcec)    #1 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:343 (wesnoth-debug+0x4762083)    #2 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #3 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #4 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #5 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #6 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #7 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #8 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #9 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #10 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #11 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #12 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #13 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #14 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #15 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #16 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #17 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #18 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #19 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #20 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #21 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #22 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #23 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #24 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #25 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #26 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #27 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #28 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #29 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #30 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 1040 at 0x7b64000d8400 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07af2)    #2 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #3 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #4 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #5 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #6 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #7 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #8 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #9 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #10 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #11 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #12 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #13 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #14 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #15 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #16 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #17 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #18 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #19 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #20 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #21 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #22 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #23 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #24 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #25 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #26 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #27 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #28 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race src/gui/widgets/widget.cpp:465 in gui2::widget::set_is_dirty(bool)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Write of size 8 at 0x7b1400381340 by main thread:    #0 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x4014789)    #1 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #2 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #3 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #4 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #5 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762e59)    #6 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #7 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #8 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #9 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #10 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #11 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #12 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #13 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #14 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #15 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #16 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #17 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #18 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #19 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #20 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #21 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #22 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #23 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #25 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #26 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #27 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #28 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #29 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #30 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #31 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #32 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #33 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #34 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #35 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #36 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #37 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #38 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #39 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #40 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #41 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #42 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #43 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b1400381340 by thread T11:    #0 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x4014789)    #1 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #2 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #3 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #4 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #5 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762e59)    #6 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #7 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #8 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #9 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #10 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #11 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #12 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #13 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #14 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #15 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #16 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #17 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #18 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #19 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #20 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #21 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #22 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #23 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #24 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #25 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #26 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #27 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #28 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #29 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #30 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #31 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #32 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #33 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #34 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #35 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 80 at 0x7b1400381300 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x39e16a2)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x39e0178)    #3 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x39ddd03)    #4 std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x39db0d1)    #5 std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x39d92e1)    #6 std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, wfl::variant, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x39d6906)    #7 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a0e4)    #8 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #9 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762e59)    #10 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:75 (wesnoth-debug+0x4758443)    #11 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #12 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #13 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #14 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #15 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #16 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #17 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #18 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #19 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #20 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #21 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #22 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #23 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #24 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #25 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #26 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #27 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #28 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #29 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #30 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #31 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #32 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #33 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #34 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #35 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #36 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #37 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #38 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #39 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race (/home/shadowm/src/wesnoth-1.14/wesnoth-debug+0x4014789) in std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b1400381348 by main thread:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:698 (wesnoth-debug+0x3ab6281)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762e59)    #7 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #8 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #9 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #10 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #11 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #12 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #13 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #14 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #15 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #16 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #17 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #18 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #19 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #20 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #21 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #22 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #23 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #25 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #26 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #27 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #28 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #29 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #30 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #31 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #32 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #33 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #34 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #35 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #36 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #37 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #38 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #39 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #40 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #41 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #42 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #43 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #44 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b1400381348 by thread T11:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:704 (wesnoth-debug+0x3ab650d)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762e59)    #7 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #8 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #9 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #10 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #11 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #12 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #13 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #14 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #15 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #16 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #17 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #18 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #19 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #20 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #21 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #22 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #23 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #24 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #25 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #26 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #27 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #28 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #29 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #30 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #31 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #32 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #33 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #34 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #35 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #36 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 80 at 0x7b1400381300 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x39e16a2)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x39e0178)    #3 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x39ddd03)    #4 std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x39db0d1)    #5 std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x39d92e1)    #6 std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, wfl::variant, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x39d6906)    #7 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a0e4)    #8 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #9 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762e59)    #10 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:75 (wesnoth-debug+0x4758443)    #11 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #12 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #13 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #14 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #15 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #16 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #17 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #18 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #19 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #20 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #21 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #22 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #23 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #24 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #25 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #26 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #27 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #28 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #29 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #30 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #31 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #32 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #33 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #34 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #35 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #36 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #37 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #38 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #39 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/shared_ptr_base.h:698 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b100031cf00 by main thread:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:703 (wesnoth-debug+0x3ab644a)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762e59)    #7 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #8 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #9 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #10 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #11 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #12 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #13 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #14 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #15 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #16 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #17 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #18 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #19 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #20 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #21 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #22 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #23 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #25 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #26 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #27 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #28 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #29 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #30 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #31 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #32 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #33 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #34 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #35 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #36 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #37 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #38 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #39 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #40 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #41 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #42 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #43 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #44 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b100031cf00 by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x4028974)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4027671)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x40256db)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_string, std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, wfl::variant_string*, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021fc3)    #5 std::__shared_ptr<wfl::variant_string, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401f09a)    #6 std::shared_ptr<wfl::variant_string>::shared_ptr<std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b634)    #7 std::shared_ptr<wfl::variant_string> std::allocate_shared<wfl::variant_string, std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x401880e)    #8 std::shared_ptr<wfl::variant_string> std::make_shared<wfl::variant_string, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) <null> (wesnoth-debug+0x4015a43)    #9 wfl::variant::variant(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/formula/variant.cpp:172 (wesnoth-debug+0x400943f)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762dc9)    #11 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #12 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 56 at 0x7b100031cf00 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x4028974)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4027671)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x40256db)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_string, std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, wfl::variant_string*, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021fc3)    #5 std::__shared_ptr<wfl::variant_string, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401f09a)    #6 std::shared_ptr<wfl::variant_string>::shared_ptr<std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b634)    #7 std::shared_ptr<wfl::variant_string> std::allocate_shared<wfl::variant_string, std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x401880e)    #8 std::shared_ptr<wfl::variant_string> std::make_shared<wfl::variant_string, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) <null> (wesnoth-debug+0x4015a43)    #9 wfl::variant::variant(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/formula/variant.cpp:172 (wesnoth-debug+0x400943f)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762dc9)    #11 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #12 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/shared_ptr_base.h:703 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Atomic write of size 4 at 0x7b100031cf08 by main thread:    #0 __tsan_atomic32_fetch_add <null> (libtsan.so.0+0x631e5)    #1 __exchange_and_add /usr/include/c++/7/ext/atomicity.h:49 (wesnoth-debug+0x3929efa)    #2 __exchange_and_add_dispatch /usr/include/c++/7/ext/atomicity.h:82 (wesnoth-debug+0x392a12a)    #3 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/include/c++/7/bits/shared_ptr_base.h:151 (wesnoth-debug+0x394977f)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:703 (wesnoth-debug+0x3ab64dc)    #5 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #6 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #7 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #8 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #9 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762e59)    #11 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #12 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #13 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #14 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #15 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #16 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #17 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #18 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #19 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #20 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #21 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #22 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #23 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #24 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #25 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #26 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #27 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #28 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #29 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #30 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #31 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #32 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #33 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #34 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #35 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #36 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #37 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #38 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #39 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #40 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #41 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #42 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #43 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #44 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #45 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #46 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #47 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #48 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b100031cf08 by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x4028974)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4027671)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x40256db)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_string, std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, wfl::variant_string*, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021fc3)    #5 std::__shared_ptr<wfl::variant_string, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401f09a)    #6 std::shared_ptr<wfl::variant_string>::shared_ptr<std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b634)    #7 std::shared_ptr<wfl::variant_string> std::allocate_shared<wfl::variant_string, std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x401880e)    #8 std::shared_ptr<wfl::variant_string> std::make_shared<wfl::variant_string, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) <null> (wesnoth-debug+0x4015a43)    #9 wfl::variant::variant(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/formula/variant.cpp:172 (wesnoth-debug+0x400943f)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762dc9)    #11 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #12 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 56 at 0x7b100031cf00 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x4028974)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4027671)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_string, std::allocator<wfl::variant_string>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x40256db)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_string, std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, wfl::variant_string*, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021fc3)    #5 std::__shared_ptr<wfl::variant_string, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401f09a)    #6 std::shared_ptr<wfl::variant_string>::shared_ptr<std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b634)    #7 std::shared_ptr<wfl::variant_string> std::allocate_shared<wfl::variant_string, std::allocator<wfl::variant_string>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::allocator<wfl::variant_string> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x401880e)    #8 std::shared_ptr<wfl::variant_string> std::make_shared<wfl::variant_string, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) <null> (wesnoth-debug+0x4015a43)    #9 wfl::variant::variant(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/formula/variant.cpp:172 (wesnoth-debug+0x400943f)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:376 (wesnoth-debug+0x4762dc9)    #11 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #12 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x631e5) in __tsan_atomic32_fetch_add====================================WARNING: ThreadSanitizer: data race (pid=17519)  Write of size 8 at 0x7b140014fe00 by main thread:    #0 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x4014789)    #1 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #2 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #3 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #4 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #5 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4763081)    #6 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #7 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #8 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #9 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #10 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #11 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #12 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #13 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #14 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #15 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #16 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #17 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #18 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #19 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #20 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #21 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #22 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #23 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #25 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #26 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #27 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #28 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #29 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #30 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #31 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #32 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #33 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #34 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #35 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #36 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #37 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #38 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #39 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #40 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #41 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #42 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #43 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b140014fe00 by thread T11:    #0 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x4014789)    #1 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #2 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #3 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #4 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #5 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4763081)    #6 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #7 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #8 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #9 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #10 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #11 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #12 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #13 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #14 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #15 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #16 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #17 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #18 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #19 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #20 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #21 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #22 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #23 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #24 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #25 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #26 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #27 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #28 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #29 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #30 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #31 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #32 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #33 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #34 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #35 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 80 at 0x7b140014fdc0 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x39e16a2)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x39e0178)    #3 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x39ddd03)    #4 std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x39db0d1)    #5 std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x39d92e1)    #6 std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, wfl::variant, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x39d6906)    #7 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a0e4)    #8 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #9 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4763081)    #10 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:75 (wesnoth-debug+0x4758443)    #11 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #12 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #13 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #14 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #15 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #16 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #17 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #18 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #19 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #20 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #21 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #22 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #23 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #24 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #25 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #26 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #27 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #28 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #29 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #30 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #31 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #32 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #33 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #34 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #35 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #36 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #37 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #38 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #39 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race (/home/shadowm/src/wesnoth-1.14/wesnoth-debug+0x4014789) in std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b140014fe08 by main thread:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:698 (wesnoth-debug+0x3ab6281)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4763081)    #7 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #8 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #9 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #10 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #11 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #12 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #13 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #14 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #15 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #16 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #17 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #18 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #19 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #20 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #21 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #22 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #23 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #25 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #26 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #27 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #28 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #29 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #30 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #31 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #32 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #33 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #34 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #35 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #36 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #37 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #38 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #39 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #40 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #41 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #42 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #43 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #44 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b140014fe08 by thread T11:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:704 (wesnoth-debug+0x3ab650d)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4763081)    #7 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #8 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #9 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #10 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #11 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #12 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #13 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #14 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #15 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #16 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #17 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #18 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #19 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #20 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #21 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #22 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #23 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #24 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #25 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #26 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #27 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #28 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #29 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #30 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #31 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #32 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #33 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #34 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #35 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #36 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 80 at 0x7b140014fdc0 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x39e16a2)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x39e0178)    #3 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x39ddd03)    #4 std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x39db0d1)    #5 std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x39d92e1)    #6 std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, wfl::variant, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x39d6906)    #7 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a0e4)    #8 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #9 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4763081)    #10 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:75 (wesnoth-debug+0x4758443)    #11 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #12 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #13 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #14 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #15 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #16 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #17 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #18 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #19 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #20 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #21 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #22 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #23 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #24 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #25 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #26 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #27 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #28 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #29 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #30 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #31 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #32 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #33 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #34 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #35 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #36 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #37 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #38 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #39 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/shared_ptr_base.h:698 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b08001fe520 by main thread:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:703 (wesnoth-debug+0x3ab644a)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4763081)    #7 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #8 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #9 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #10 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #11 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #12 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #13 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #14 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #15 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #16 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #17 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #18 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #19 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #20 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #21 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #22 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #23 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #25 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #26 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #27 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #28 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #29 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #30 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #31 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #32 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #33 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #34 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #35 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #36 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #37 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #38 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #39 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #40 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #41 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #42 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #43 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #44 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b08001fe520 by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x402816a)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4026c33)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4023a95)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, wfl::variant_int*, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021597)    #5 std::__shared_ptr<wfl::variant_int, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401e86a)    #6 std::shared_ptr<wfl::variant_int>::shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b274)    #7 std::shared_ptr<wfl::variant_int> std::allocate_shared<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4017fd4)    #8 std::shared_ptr<wfl::variant_int> std::make_shared<wfl::variant_int, int&>(int&) /usr/include/c++/7/bits/shared_ptr.h:707 (wesnoth-debug+0x40152cb)    #9 wfl::variant::variant(int) src/formula/variant.cpp:148 (wesnoth-debug+0x4008f55)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4762ff1)    #11 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #12 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 32 at 0x7b08001fe520 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x402816a)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4026c33)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4023a95)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, wfl::variant_int*, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021597)    #5 std::__shared_ptr<wfl::variant_int, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401e86a)    #6 std::shared_ptr<wfl::variant_int>::shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b274)    #7 std::shared_ptr<wfl::variant_int> std::allocate_shared<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4017fd4)    #8 std::shared_ptr<wfl::variant_int> std::make_shared<wfl::variant_int, int&>(int&) /usr/include/c++/7/bits/shared_ptr.h:707 (wesnoth-debug+0x40152cb)    #9 wfl::variant::variant(int) src/formula/variant.cpp:148 (wesnoth-debug+0x4008f55)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4762ff1)    #11 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #12 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/shared_ptr_base.h:703 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Atomic write of size 4 at 0x7b08001fe528 by main thread:    #0 __tsan_atomic32_fetch_add <null> (libtsan.so.0+0x631e5)    #1 __exchange_and_add /usr/include/c++/7/ext/atomicity.h:49 (wesnoth-debug+0x3929efa)    #2 __exchange_and_add_dispatch /usr/include/c++/7/ext/atomicity.h:82 (wesnoth-debug+0x392a12a)    #3 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/include/c++/7/bits/shared_ptr_base.h:151 (wesnoth-debug+0x394977f)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:703 (wesnoth-debug+0x3ab64dc)    #5 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #6 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #7 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #8 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #9 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4763081)    #11 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #12 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #13 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #14 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #15 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #16 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #17 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #18 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #19 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #20 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #21 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #22 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #23 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #24 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #25 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #26 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #27 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #28 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #29 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #30 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #31 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #32 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #33 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #34 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #35 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #36 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #37 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #38 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #39 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #40 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #41 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #42 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #43 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #44 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #45 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #46 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #47 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #48 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b08001fe528 by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x402816a)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4026c33)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4023a95)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, wfl::variant_int*, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021597)    #5 std::__shared_ptr<wfl::variant_int, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401e86a)    #6 std::shared_ptr<wfl::variant_int>::shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b274)    #7 std::shared_ptr<wfl::variant_int> std::allocate_shared<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4017fd4)    #8 std::shared_ptr<wfl::variant_int> std::make_shared<wfl::variant_int, int&>(int&) /usr/include/c++/7/bits/shared_ptr.h:707 (wesnoth-debug+0x40152cb)    #9 wfl::variant::variant(int) src/formula/variant.cpp:148 (wesnoth-debug+0x4008f55)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4762ff1)    #11 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #12 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 32 at 0x7b08001fe520 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x402816a)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4026c33)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4023a95)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, wfl::variant_int*, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021597)    #5 std::__shared_ptr<wfl::variant_int, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401e86a)    #6 std::shared_ptr<wfl::variant_int>::shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b274)    #7 std::shared_ptr<wfl::variant_int> std::allocate_shared<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4017fd4)    #8 std::shared_ptr<wfl::variant_int> std::make_shared<wfl::variant_int, int&>(int&) /usr/include/c++/7/bits/shared_ptr.h:707 (wesnoth-debug+0x40152cb)    #9 wfl::variant::variant(int) src/formula/variant.cpp:148 (wesnoth-debug+0x4008f55)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:377 (wesnoth-debug+0x4762ff1)    #11 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #12 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x631e5) in __tsan_atomic32_fetch_add====================================WARNING: ThreadSanitizer: data race (pid=17519)  Write of size 8 at 0x7b140014ff90 by main thread:    #0 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x4014789)    #1 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #2 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #3 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #4 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #5 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x47632f8)    #6 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #7 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #8 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #9 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #10 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #11 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #12 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #13 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #14 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #15 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #16 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #17 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #18 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #19 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #20 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #21 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #22 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #23 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #25 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #26 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #27 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #28 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #29 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #30 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #31 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #32 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #33 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #34 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #35 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #36 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #37 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #38 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #39 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #40 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #41 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #42 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #43 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b140014ff90 by thread T11:    #0 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x4014789)    #1 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #2 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #3 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #4 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #5 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x47632f8)    #6 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #7 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #8 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #9 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #10 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #11 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #12 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #13 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #14 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #15 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #16 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #17 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #18 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #19 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #20 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #21 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #22 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #23 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #24 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #25 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #26 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #27 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #28 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #29 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #30 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #31 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #32 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #33 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #34 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #35 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 80 at 0x7b140014ff50 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x39e16a2)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x39e0178)    #3 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x39ddd03)    #4 std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x39db0d1)    #5 std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x39d92e1)    #6 std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, wfl::variant, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x39d6906)    #7 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a0e4)    #8 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #9 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x47632f8)    #10 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:75 (wesnoth-debug+0x4758443)    #11 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #12 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #13 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #14 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #15 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #16 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #17 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #18 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #19 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #20 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #21 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #22 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #23 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #24 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #25 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #26 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #27 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #28 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #29 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #30 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #31 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #32 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #33 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #34 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #35 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #36 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #37 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #38 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #39 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race (/home/shadowm/src/wesnoth-1.14/wesnoth-debug+0x4014789) in std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b140014ff98 by main thread:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:698 (wesnoth-debug+0x3ab6281)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x47632f8)    #7 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #8 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #9 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #10 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #11 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #12 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #13 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #14 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #15 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #16 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #17 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #18 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #19 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #20 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #21 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #22 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #23 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #25 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #26 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #27 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #28 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #29 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #30 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #31 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #32 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #33 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #34 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #35 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #36 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #37 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #38 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #39 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #40 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #41 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #42 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #43 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #44 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b140014ff98 by thread T11:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:704 (wesnoth-debug+0x3ab650d)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x47632f8)    #7 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #8 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #9 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #10 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #11 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #12 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #13 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #14 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #15 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #16 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #17 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #18 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #19 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #20 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #21 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #22 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #23 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #24 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #25 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #26 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #27 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #28 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #29 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #30 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #31 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #32 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #33 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #34 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #35 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #36 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 80 at 0x7b140014ff50 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x39e16a2)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x39e0178)    #3 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x39ddd03)    #4 std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x39db0d1)    #5 std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x39d92e1)    #6 std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, wfl::variant, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x39d6906)    #7 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a0e4)    #8 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #9 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x47632f8)    #10 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:75 (wesnoth-debug+0x4758443)    #11 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #12 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #13 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #14 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #15 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #16 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #17 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #18 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #19 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #20 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #21 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #22 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #23 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #24 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #25 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #26 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #27 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #28 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #29 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #30 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #31 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #32 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #33 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #34 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #35 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #36 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #37 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #38 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #39 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/shared_ptr_base.h:698 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b080054b520 by main thread:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:703 (wesnoth-debug+0x3ab644a)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x47632f8)    #7 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #8 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #9 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #10 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #11 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #12 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #13 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #14 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #15 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #16 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #17 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #18 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #19 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #20 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #21 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #22 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #23 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #25 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #26 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #27 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #28 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #29 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #30 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #31 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #32 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #33 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #34 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #35 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #36 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #37 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #38 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #39 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #40 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #41 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #42 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #43 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #44 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b080054b520 by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x402816a)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4026c33)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4023a95)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, wfl::variant_int*, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021597)    #5 std::__shared_ptr<wfl::variant_int, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401e86a)    #6 std::shared_ptr<wfl::variant_int>::shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b274)    #7 std::shared_ptr<wfl::variant_int> std::allocate_shared<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4017fd4)    #8 std::shared_ptr<wfl::variant_int> std::make_shared<wfl::variant_int, int&>(int&) /usr/include/c++/7/bits/shared_ptr.h:707 (wesnoth-debug+0x40152cb)    #9 wfl::variant::variant(int) src/formula/variant.cpp:148 (wesnoth-debug+0x4008f55)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x4763268)    #11 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #12 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 32 at 0x7b080054b520 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x402816a)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4026c33)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4023a95)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, wfl::variant_int*, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021597)    #5 std::__shared_ptr<wfl::variant_int, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401e86a)    #6 std::shared_ptr<wfl::variant_int>::shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b274)    #7 std::shared_ptr<wfl::variant_int> std::allocate_shared<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4017fd4)    #8 std::shared_ptr<wfl::variant_int> std::make_shared<wfl::variant_int, int&>(int&) /usr/include/c++/7/bits/shared_ptr.h:707 (wesnoth-debug+0x40152cb)    #9 wfl::variant::variant(int) src/formula/variant.cpp:148 (wesnoth-debug+0x4008f55)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x4763268)    #11 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #12 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/shared_ptr_base.h:703 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Atomic write of size 4 at 0x7b080054b528 by main thread:    #0 __tsan_atomic32_fetch_add <null> (libtsan.so.0+0x631e5)    #1 __exchange_and_add /usr/include/c++/7/ext/atomicity.h:49 (wesnoth-debug+0x3929efa)    #2 __exchange_and_add_dispatch /usr/include/c++/7/ext/atomicity.h:82 (wesnoth-debug+0x392a12a)    #3 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/include/c++/7/bits/shared_ptr_base.h:151 (wesnoth-debug+0x394977f)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:703 (wesnoth-debug+0x3ab64dc)    #5 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #6 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #7 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #8 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #9 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x47632f8)    #11 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #12 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #13 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #14 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #15 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #16 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #17 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #18 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #19 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #20 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #21 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #22 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #23 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #24 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #25 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #26 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #27 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #28 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #29 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #30 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #31 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #32 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #33 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #34 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #35 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #36 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #37 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #38 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #39 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #40 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #41 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #42 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #43 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #44 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #45 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #46 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #47 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #48 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b080054b528 by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x402816a)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4026c33)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4023a95)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, wfl::variant_int*, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021597)    #5 std::__shared_ptr<wfl::variant_int, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401e86a)    #6 std::shared_ptr<wfl::variant_int>::shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b274)    #7 std::shared_ptr<wfl::variant_int> std::allocate_shared<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4017fd4)    #8 std::shared_ptr<wfl::variant_int> std::make_shared<wfl::variant_int, int&>(int&) /usr/include/c++/7/bits/shared_ptr.h:707 (wesnoth-debug+0x40152cb)    #9 wfl::variant::variant(int) src/formula/variant.cpp:148 (wesnoth-debug+0x4008f55)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x4763268)    #11 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #12 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 32 at 0x7b080054b520 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x402816a)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4026c33)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_int, std::allocator<wfl::variant_int>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4023a95)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, wfl::variant_int*, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021597)    #5 std::__shared_ptr<wfl::variant_int, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401e86a)    #6 std::shared_ptr<wfl::variant_int>::shared_ptr<std::allocator<wfl::variant_int>, int&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b274)    #7 std::shared_ptr<wfl::variant_int> std::allocate_shared<wfl::variant_int, std::allocator<wfl::variant_int>, int&>(std::allocator<wfl::variant_int> const&, int&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4017fd4)    #8 std::shared_ptr<wfl::variant_int> std::make_shared<wfl::variant_int, int&>(int&) /usr/include/c++/7/bits/shared_ptr.h:707 (wesnoth-debug+0x40152cb)    #9 wfl::variant::variant(int) src/formula/variant.cpp:148 (wesnoth-debug+0x4008f55)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:378 (wesnoth-debug+0x4763268)    #11 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #12 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x631e5) in __tsan_atomic32_fetch_add====================================WARNING: ThreadSanitizer: data race (pid=17519)  Write of size 8 at 0x7b140014fc70 by main thread:    #0 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x4014789)    #1 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #2 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #3 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #4 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #5 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763692)    #6 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #7 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #8 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #9 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #10 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #11 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #12 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #13 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #14 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #15 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #16 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #17 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #18 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #19 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #20 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #21 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #22 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #23 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #25 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #26 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #27 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #28 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #29 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #30 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #31 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #32 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #33 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #34 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #35 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #36 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #37 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #38 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #39 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #40 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #41 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #42 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #43 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b140014fc70 by thread T11:    #0 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x4014789)    #1 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #2 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #3 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #4 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #5 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763692)    #6 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #7 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #8 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #9 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #10 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #11 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #12 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #13 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #14 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #15 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #16 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #17 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #18 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #19 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #20 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #21 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #22 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #23 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #24 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #25 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #26 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #27 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #28 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #29 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #30 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #31 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #32 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #33 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #34 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #35 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 80 at 0x7b140014fc30 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x39e16a2)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x39e0178)    #3 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x39ddd03)    #4 std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x39db0d1)    #5 std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x39d92e1)    #6 std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, wfl::variant, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x39d6906)    #7 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a0e4)    #8 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #9 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763692)    #10 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:75 (wesnoth-debug+0x4758443)    #11 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #12 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #13 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #14 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #15 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #16 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #17 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #18 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #19 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #20 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #21 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #22 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #23 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #24 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #25 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #26 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #27 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #28 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #29 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #30 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #31 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #32 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #33 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #34 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #35 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #36 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #37 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #38 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #39 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race (/home/shadowm/src/wesnoth-1.14/wesnoth-debug+0x4014789) in std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b140014fc78 by main thread:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:698 (wesnoth-debug+0x3ab6281)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763692)    #7 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #8 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #9 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #10 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #11 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #12 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #13 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #14 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #15 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #16 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #17 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #18 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #19 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #20 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #21 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #22 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #23 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #25 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #26 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #27 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #28 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #29 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #30 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #31 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #32 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #33 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #34 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #35 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #36 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #37 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #38 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #39 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #40 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #41 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #42 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #43 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #44 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b140014fc78 by thread T11:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:704 (wesnoth-debug+0x3ab650d)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763692)    #7 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #8 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #9 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #10 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #11 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #12 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #13 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #14 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #15 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #16 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #17 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #18 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #19 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #20 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #21 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #22 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #23 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #24 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #25 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #26 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #27 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #28 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #29 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #30 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #31 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #32 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #33 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #34 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #35 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #36 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 80 at 0x7b140014fc30 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x39e16a2)    #2 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x39e0178)    #3 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_get_node() /usr/include/c++/7/bits/stl_tree.h:588 (wesnoth-debug+0x39ddd03)    #4 std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:642 (wesnoth-debug+0x39db0d1)    #5 std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/7/bits/stl_tree.h:2398 (wesnoth-debug+0x39d92e1)    #6 std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, wfl::variant, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, wfl::variant> > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/7/bits/stl_map.h:493 (wesnoth-debug+0x39d6906)    #7 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a0e4)    #8 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #9 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763692)    #10 gui2::styled_widget::styled_widget(gui2::implementation::builder_styled_widget const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/gui/widgets/styled_widget.cpp:75 (wesnoth-debug+0x4758443)    #11 gui2::label::label(gui2::implementation::builder_label const&) src/gui/widgets/label.cpp:51 (wesnoth-debug+0x3a02b19)    #12 gui2::implementation::builder_label::build() const src/gui/widgets/label.cpp:319 (wesnoth-debug+0x3a07b4b)    #13 gui2::builder_grid::build(gui2::grid*) const src/gui/core/window_builder.cpp:475 (wesnoth-debug+0x4237e9b)    #14 gui2::builder_grid::build() const src/gui/core/window_builder.cpp:443 (wesnoth-debug+0x42367ae)    #15 gui2::window::finalize(std::shared_ptr<gui2::builder_grid> const&) src/gui/widgets/window.cpp:1191 (wesnoth-debug+0x3c53886)    #16 gui2::build(gui2::builder_window::window_resolution const*) src/gui/core/window_builder.cpp:73 (wesnoth-debug+0x422f89b)    #17 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:248 (wesnoth-debug+0x4a8f770)    #18 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #19 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #20 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #21 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #22 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #23 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #24 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #25 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #26 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #27 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #28 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #29 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #30 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #31 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #32 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #33 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #34 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #35 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #36 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #37 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #38 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #39 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/shared_ptr_base.h:698 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Read of size 8 at 0x7b0c0010b1e0 by main thread:    #0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:703 (wesnoth-debug+0x3ab644a)    #1 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #2 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #3 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #4 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #5 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #6 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763692)    #7 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #8 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #9 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #10 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #11 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #12 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #13 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #14 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #15 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #16 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #17 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #18 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #19 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #20 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #21 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #22 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #23 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #24 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #25 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #26 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #27 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #28 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #29 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #30 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #31 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #32 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #33 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #34 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #35 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #36 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #37 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #38 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #39 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #40 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #41 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #42 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #43 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #44 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b0c0010b1e0 by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x40286fb)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4027323)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4024eb3)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_list, std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, wfl::variant_list*, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021d23)    #5 std::__shared_ptr<wfl::variant_list, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401ee8e)    #6 std::shared_ptr<wfl::variant_list>::shared_ptr<std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b53e)    #7 std::shared_ptr<wfl::variant_list> std::allocate_shared<wfl::variant_list, std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4018582)    #8 std::shared_ptr<wfl::variant_list> std::make_shared<wfl::variant_list, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::vector<wfl::variant, std::allocator<wfl::variant> > const&) <null> (wesnoth-debug+0x4015842)    #9 wfl::variant::variant(std::vector<wfl::variant, std::allocator<wfl::variant> > const&) src/formula/variant.cpp:166 (wesnoth-debug+0x40092ea)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763602)    #11 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #12 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 48 at 0x7b0c0010b1e0 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x40286fb)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4027323)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4024eb3)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_list, std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, wfl::variant_list*, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021d23)    #5 std::__shared_ptr<wfl::variant_list, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401ee8e)    #6 std::shared_ptr<wfl::variant_list>::shared_ptr<std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b53e)    #7 std::shared_ptr<wfl::variant_list> std::allocate_shared<wfl::variant_list, std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4018582)    #8 std::shared_ptr<wfl::variant_list> std::make_shared<wfl::variant_list, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::vector<wfl::variant, std::allocator<wfl::variant> > const&) <null> (wesnoth-debug+0x4015842)    #9 wfl::variant::variant(std::vector<wfl::variant, std::allocator<wfl::variant> > const&) src/formula/variant.cpp:166 (wesnoth-debug+0x40092ea)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763602)    #11 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #12 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race /usr/include/c++/7/bits/shared_ptr_base.h:703 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&)====================================WARNING: ThreadSanitizer: data race (pid=17519)  Atomic write of size 4 at 0x7b0c0010b1e8 by main thread:    #0 __tsan_atomic32_fetch_add <null> (libtsan.so.0+0x631e5)    #1 __exchange_and_add /usr/include/c++/7/ext/atomicity.h:49 (wesnoth-debug+0x3929efa)    #2 __exchange_and_add_dispatch /usr/include/c++/7/ext/atomicity.h:82 (wesnoth-debug+0x392a12a)    #3 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/include/c++/7/bits/shared_ptr_base.h:151 (wesnoth-debug+0x394977f)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/7/bits/shared_ptr_base.h:703 (wesnoth-debug+0x3ab64dc)    #5 std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<wfl::variant_value_base, (__gnu_cxx::_Lock_policy)2> const&) <null> (wesnoth-debug+0x40147ef)    #6 std::shared_ptr<wfl::variant_value_base>::operator=(std::shared_ptr<wfl::variant_value_base> const&) <null> (wesnoth-debug+0x40148a1)    #7 wfl::variant::operator=(wfl::variant const&) src/formula/variant.cpp:185 (wesnoth-debug+0x400969b)    #8 wfl::map_formula_callable::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/formula/callable.hpp:254 (wesnoth-debug+0x3a0a118)    #9 gui2::canvas::set_variable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, wfl::variant const&) src/gui/core/canvas.hpp:173 (wesnoth-debug+0x3a0a27a)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763692)    #11 gui2::styled_widget::place(point const&, point const&) src/gui/widgets/styled_widget.cpp:286 (wesnoth-debug+0x4760c6e)    #12 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #13 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #14 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #15 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #16 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #17 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #18 gui2::scrollbar_container::set_content_size(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:819 (wesnoth-debug+0x47236c7)    #19 gui2::scrollbar_container::place(point const&, point const&) src/gui/widgets/scrollbar_container.cpp:406 (wesnoth-debug+0x4712105)    #20 gui2::grid::child::place(point, point) src/gui/widgets/grid.cpp:798 (wesnoth-debug+0x46bb55c)    #21 gui2::grid::layout(point const&) src/gui/widgets/grid.cpp:983 (wesnoth-debug+0x46c1ebf)    #22 gui2::grid::place(point const&, point const&) src/gui/widgets/grid.cpp:505 (wesnoth-debug+0x46b20aa)    #23 gui2::container_base::place(point const&, point const&) src/gui/widgets/container_base.cpp:140 (wesnoth-debug+0x438fc1a)    #24 gui2::window::layout() src/gui/widgets/window.cpp:1071 (wesnoth-debug+0x3c50631)    #25 gui2::window::draw() src/gui/widgets/window.cpp:630 (wesnoth-debug+0x3c47c75)    #26 void std::__invoke_impl<void, void (gui2::window::*&)(), gui2::window*&>(std::__invoke_memfun_deref, void (gui2::window::*&)(), gui2::window*&) /usr/include/c++/7/bits/invoke.h:73 (wesnoth-debug+0x3c9188b)    #27 std::__invoke_result<void (gui2::window::*&)(), gui2::window*&>::type std::__invoke<void (gui2::window::*&)(), gui2::window*&>(void (gui2::window::*&)(), gui2::window*&) <null> (wesnoth-debug+0x3c8b9bc)    #28 void std::_Bind<void (gui2::window::*(gui2::window*))()>::__call<void, gui2::widget&, gui2::event::ui_event&&, bool&, bool&, 0ul>(std::tuple<gui2::widget&, gui2::event::ui_event&&, bool&, bool&>&&, std::_Index_tuple<0ul>) <null> (wesnoth-debug+0x3c862b9)    #29 void std::_Bind<void (gui2::window::*(gui2::window*))()>::operator()<gui2::widget&, gui2::event::ui_event, bool&, bool&, void>(gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/functional:551 (wesnoth-debug+0x3c7b169)    #30 std::_Function_handler<void (gui2::widget&, gui2::event::ui_event, bool&, bool&), std::_Bind<void (gui2::window::*(gui2::window*))()> >::_M_invoke(std::_Any_data const&, gui2::widget&, gui2::event::ui_event&&, bool&, bool&) /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x3c6fa42)    #31 std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>::operator()(gui2::widget&, gui2::event::ui_event, bool&, bool&) const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x419b92f)    #32 bool gui2::event::implementation::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, std::vector<std::pair<gui2::widget*, gui2::event::ui_event>, std::allocator<std::pair<gui2::widget*, gui2::event::ui_event> > >&, gui2::widget*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:433 (wesnoth-debug+0x418d093)    #33 bool gui2::event::fire_event<std::function<void (gui2::widget&, gui2::event::ui_event, bool&, bool&)>>(gui2::event::ui_event, gui2::event::dispatcher*, gui2::widget*) src/gui/core/event/dispatcher_private.hpp:505 (wesnoth-debug+0x4188975)    #34 gui2::event::dispatcher::fire(gui2::event::ui_event, gui2::widget&) src/gui/core/event/dispatcher.cpp:137 (wesnoth-debug+0x418260d)    #35 gui2::event::sdl_event_handler::draw() src/gui/core/event/handler.cpp:537 (wesnoth-debug+0x420fc86)    #36 gui2::event::sdl_event_handler::handle_event(SDL_Event const&) src/gui/core/event/handler.cpp:385 (wesnoth-debug+0x420d40f)    #37 events::pump() src/events.cpp:616 (wesnoth-debug+0x66b7ec5)    #38 gui2::window::show(bool, unsigned int) src/gui/widgets/window.cpp:550 (wesnoth-debug+0x3c45f56)    #39 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:89 (wesnoth-debug+0x42a2669)    #40 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #41 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #42 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #43 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #44 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #45 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #46 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #47 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #48 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65)   Previous write of size 8 at 0x7b0c0010b1e8 by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x40286fb)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4027323)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4024eb3)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_list, std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, wfl::variant_list*, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021d23)    #5 std::__shared_ptr<wfl::variant_list, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401ee8e)    #6 std::shared_ptr<wfl::variant_list>::shared_ptr<std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b53e)    #7 std::shared_ptr<wfl::variant_list> std::allocate_shared<wfl::variant_list, std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4018582)    #8 std::shared_ptr<wfl::variant_list> std::make_shared<wfl::variant_list, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::vector<wfl::variant, std::allocator<wfl::variant> > const&) <null> (wesnoth-debug+0x4015842)    #9 wfl::variant::variant(std::vector<wfl::variant, std::allocator<wfl::variant> > const&) src/formula/variant.cpp:166 (wesnoth-debug+0x40092ea)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763602)    #11 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #12 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Location is heap block of size 48 at 0x7b0c0010b1e0 allocated by thread T11:    #0 operator new(unsigned long) <null> (libtsan.so.0+0x6f14a)    #1 __gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/7/ext/new_allocator.h:111 (wesnoth-debug+0x40286fb)    #2 std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/7/bits/alloc_traits.h:436 (wesnoth-debug+0x4027323)    #3 std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wfl::variant_list, std::allocator<wfl::variant_list>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/7/bits/allocated_ptr.h:104 (wesnoth-debug+0x4024eb3)    #4 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wfl::variant_list, std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, wfl::variant_list*, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:635 (wesnoth-debug+0x4021d23)    #5 std::__shared_ptr<wfl::variant_list, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr_base.h:1295 (wesnoth-debug+0x401ee8e)    #6 std::shared_ptr<wfl::variant_list>::shared_ptr<std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::_Sp_make_shared_tag, std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr.h:344 (wesnoth-debug+0x401b53e)    #7 std::shared_ptr<wfl::variant_list> std::allocate_shared<wfl::variant_list, std::allocator<wfl::variant_list>, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::allocator<wfl::variant_list> const&, std::vector<wfl::variant, std::allocator<wfl::variant> > const&) /usr/include/c++/7/bits/shared_ptr.h:691 (wesnoth-debug+0x4018582)    #8 std::shared_ptr<wfl::variant_list> std::make_shared<wfl::variant_list, std::vector<wfl::variant, std::allocator<wfl::variant> > const&>(std::vector<wfl::variant, std::allocator<wfl::variant> > const&) <null> (wesnoth-debug+0x4015842)    #9 wfl::variant::variant(std::vector<wfl::variant, std::allocator<wfl::variant> > const&) src/formula/variant.cpp:166 (wesnoth-debug+0x40092ea)    #10 gui2::styled_widget::update_canvas() src/gui/widgets/styled_widget.cpp:389 (wesnoth-debug+0x4763602)    #11 gui2::styled_widget::set_use_markup(bool) src/gui/widgets/styled_widget.cpp:342 (wesnoth-debug+0x4761f99)    #12 lua_gui2::intf_set_dialog_markup(lua_State*) src/scripting/lua_gui2.cpp:823 (wesnoth-debug+0x4a98090)    #13 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #14 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #15 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #16 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #17 lua_callk(lua_State*, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:924 (wesnoth-debug+0x619e482)    #18 lua_gui2::show_dialog(lua_State*) src/scripting/lua_gui2.cpp:252 (wesnoth-debug+0x4a8f7e1)    #19 luaD_precall(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:434 (wesnoth-debug+0x61b485e)    #20 luaV_execute(lua_State*) src/lua/lvm.cpp:1134 (wesnoth-debug+0x62035cd)    #21 luaD_call(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:499 (wesnoth-debug+0x61b55e5)    #22 luaD_callnoyield(lua_State*, lua_TValue*, int) src/lua/ldo.cpp:509 (wesnoth-debug+0x61b574a)    #23 f_call src/lua/lapi.cpp:942 (wesnoth-debug+0x619e6ba)    #24 luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) src/lua/ldo.cpp:142 (wesnoth-debug+0x61b149e)    #25 luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) src/lua/ldo.cpp:729 (wesnoth-debug+0x61b745f)    #26 lua_pcallk(lua_State*, int, int, int, long, int (*)(lua_State*, int, long)) src/lua/lapi.cpp:968 (wesnoth-debug+0x619e8e9)    #27 luaW_pcall_internal(lua_State*, int, int) src/scripting/lua_common.cpp:956 (wesnoth-debug+0x4a812d6)    #28 lua_kernel_base::protected_call(lua_State*, int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:643 (wesnoth-debug+0x4ab1304)    #29 lua_kernel_base::protected_call(int, int, std::function<void (char const*, char const*)>) src/scripting/lua_kernel_base.cpp:638 (wesnoth-debug+0x4ab128b)    #30 lua_kernel_base::throwing_run(char const*, int) src/scripting/lua_kernel_base.cpp:721 (wesnoth-debug+0x4ab23fd)    #31 lua_kernel_base::run(char const*, int) src/scripting/lua_kernel_base.cpp:728 (wesnoth-debug+0x4ab259b)    #32 lua_kernel_base::run_lua_tag(config const&) src/scripting/lua_kernel_base.cpp:711 (wesnoth-debug+0x4ab1e1d)    #33 game_lua_kernel::initialize(config const&) src/scripting/game_lua_kernel.cpp:4327 (wesnoth-debug+0x4a2a9f1)    #34 game_state::init(config const&, play_controller&) src/game_state.cpp:210 (wesnoth-debug+0x410fa9a)    #35 operator() src/play_controller.cpp:219 (wesnoth-debug+0x48fcb3b)    #36 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (wesnoth-debug+0x49285be)    #37 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (wesnoth-debug+0x39a376b)    #38 operator() src/gui/dialogs/loading_screen.cpp:116 (wesnoth-debug+0x42739cf)    #39 run /usr/include/boost/thread/detail/thread.hpp:116 (wesnoth-debug+0x4279089)    #40 <null> <null> (libboost_thread.so.1.62.0+0x11f95)   Thread T11 (tid=17965, running) created by main thread at:    #0 pthread_create <null> (libtsan.so.0+0x2b6db)    #1 boost::thread::start_thread_noexcept() <null> (libboost_thread.so.1.62.0+0x112f8)    #2 thread<gui2::dialogs::loading_screen::pre_show(gui2::window&)::<lambda()> > /usr/include/boost/thread/detail/thread.hpp:265 (wesnoth-debug+0x42771d7)    #3 gui2::dialogs::loading_screen::pre_show(gui2::window&) src/gui/dialogs/loading_screen.cpp:123 (wesnoth-debug+0x4273cf3)    #4 gui2::dialogs::modal_dialog::show(unsigned int) src/gui/dialogs/modal_dialog.cpp:85 (wesnoth-debug+0x42a22fc)    #5 gui2::dialogs::loading_screen::display(std::function<void ()>) src/gui/dialogs/loading_screen.cpp:223 (wesnoth-debug+0x42765fa)    #6 play_controller::init(config const&) src/play_controller.cpp:204 (wesnoth-debug+0x490198b)    #7 play_controller::play_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/play_controller.cpp:181 (wesnoth-debug+0x48fa12c)    #8 playsingle_controller::playsingle_controller(config const&, saved_game&, config const&, std::shared_ptr<terrain_type_data> const&, bool) src/playsingle_controller.cpp:79 (wesnoth-debug+0x5a5acfa)    #9 campaign_controller::playsingle_scenario(end_level_data&) src/game_initialization/playcampaign.cpp:189 (wesnoth-debug+0x56757e8)    #10 campaign_controller::play_game() src/game_initialization/playcampaign.cpp:281 (wesnoth-debug+0x56773de)    #11 game_launcher::launch_game(game_launcher::RELOAD_GAME_DATA) src/game_launcher.cpp:983 (wesnoth-debug+0x40f5765)    #12 do_gameloop src/wesnoth.cpp:897 (wesnoth-debug+0x3ca4201)    #13 main src/wesnoth.cpp:1143 (wesnoth-debug+0x3ca4f65) SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x631e5) in __tsan_atomic32_fetch_add==================

Comments