Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ==================
- 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 initializing
- 20180525 22:47:25 info wml: [Naia] Init: loading ~add-ons/Naia/lua/package.lua
- 20180525 22:47:25 info wml: [Naia] Init: loading ~add-ons/Naia/lua/hex.lua
- 20180525 22:47:25 info wml: [Naia] Init: loading ~add-ons/Naia/lua/common.lua
- 20180525 22:47:25 info wml: [Naia] Init: loading ~add-ons/Naia/lua/npc.lua
- 20180525 22:47:25 info wml: [Naia] Init: loading ~add-ons/Naia/lua/optimizations.lua
- 20180525 22:47:25 info wml: [Naia] Init: loading ~add-ons/Naia/lua/patch.lua
- 20180525 22:47:25 info wml: [Naia] PATCH [remove_sound_source]: comma-separated id list
- 20180525 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.lua
- 20180525 22:47:25 info wml: [Naia] Init: loading ~add-ons/Naia/lua/wlp.lua
- 20180525 22:47:25 info wml: [Naia] Init: loading ~add-ons/Naia/lua/gui/bug.lua
- 20180525 22:47:25 info wml: [Naia] Init: loading ~add-ons/Naia/lua/gui/transient_message.lua
- 20180525 22:47:25 info wml: [Naia] Init: loading ~add-ons/Naia/lua/compat.lua
- 20180525 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
- ==================
Advertisement
Add Comment
Please, Sign In to add comment