1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-04-02 04:36:39 +00:00
openmw/components
elsid fa1fb2a6b5
Reset mIsReleased before starting threads
To fix TSAN warning:

WARNING: ThreadSanitizer: data race (pid=68597)
  Write of size 1 at 0x7b3800079234 by main thread:
    #0 SceneUtil::WorkQueue::start(unsigned long) /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:51 (openmw+0x10daa10)
    #1 SceneUtil::WorkQueue::WorkQueue(unsigned long) /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:39 (openmw+0x10dad97)
    #2 OMW::Engine::prepareEngine(Settings::Manager&) /home/elsid/dev/openmw/apps/openmw/engine.cpp:700 (openmw+0xf7cb5a)
    #3 OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:949 (openmw+0xf82688)
    #4 runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:316 (openmw+0xf62611)
    #5 wrapApplication(int (*)(int, char**), int, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/elsid/dev/openmw/components/debug/debugging.cpp:205 (openmw+0x125df1c)
    #6 main /home/elsid/dev/openmw/apps/openmw/main.cpp:328 (openmw+0x596323)

  Previous read of size 1 at 0x7b3800079234 by thread T10 (mutexes: write M19275778865205896):
    #0 SceneUtil::WorkQueue::removeWorkItem() /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:86 (openmw+0x10d9e51)
    #1 SceneUtil::WorkThread::run() /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:127 (openmw+0x10da52a)
    #2 operator() /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:114 (openmw+0x10da664)
    #3 __invoke_impl<void, SceneUtil::WorkThread::WorkThread(SceneUtil::WorkQueue&)::<lambda()> > /usr/include/c++/11.1.0/bits/invoke.h:61 (openmw+0x10da664)
    #4 __invoke<SceneUtil::WorkThread::WorkThread(SceneUtil::WorkQueue&)::<lambda()> > /usr/include/c++/11.1.0/bits/invoke.h:96 (openmw+0x10da664)
    #5 _M_invoke<0> /usr/include/c++/11.1.0/bits/std_thread.h:253 (openmw+0x10da664)
    #6 operator() /usr/include/c++/11.1.0/bits/std_thread.h:260 (openmw+0x10da664)
    #7 _M_run /usr/include/c++/11.1.0/bits/std_thread.h:211 (openmw+0x10da664)
    #8 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:82 (libstdc++.so.6+0xd33c3)

  Location is heap block of size 216 at 0x7b3800079220 allocated by main thread:
    #0 operator new(unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cpp:64 (libtsan.so.0+0x91824)
    #1 OMW::Engine::prepareEngine(Settings::Manager&) /home/elsid/dev/openmw/apps/openmw/engine.cpp:700 (openmw+0xf7cb4c)
    #2 OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:949 (openmw+0xf82688)
    #3 runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:316 (openmw+0xf62611)
    #4 wrapApplication(int (*)(int, char**), int, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/elsid/dev/openmw/components/debug/debugging.cpp:205 (openmw+0x125df1c)
    #5 main /home/elsid/dev/openmw/apps/openmw/main.cpp:328 (openmw+0x596323)

  Mutex M19275778865205896 is already destroyed.

  Thread T10 (tid=68609, running) created by main thread at:
    #0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x61c3a)
    #1 std:🧵:_M_start_thread(std::unique_ptr<std:🧵:_State, std::default_delete<std:🧵:_State> >, void (*)()) /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663 (libstdc++.so.6+0xd36aa)
    #2 std::_MakeUniq<SceneUtil::WorkThread>::__single_object std::make_unique<SceneUtil::WorkThread, SceneUtil::WorkQueue&>(SceneUtil::WorkQueue&) /usr/include/c++/11.1.0/bits/unique_ptr.h:962 (openmw+0x10da987)
    #3 SceneUtil::WorkQueue::start(unsigned long) /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:50 (openmw+0x10da987)
    #4 SceneUtil::WorkQueue::WorkQueue(unsigned long) /home/elsid/dev/openmw/components/sceneutil/workqueue.cpp:39 (openmw+0x10dad97)
    #5 OMW::Engine::prepareEngine(Settings::Manager&) /home/elsid/dev/openmw/apps/openmw/engine.cpp:700 (openmw+0xf7cb5a)
    #6 OMW::Engine::go() /home/elsid/dev/openmw/apps/openmw/engine.cpp:949 (openmw+0xf82688)
    #7 runApplication(int, char**) /home/elsid/dev/openmw/apps/openmw/main.cpp:316 (openmw+0xf62611)
    #8 wrapApplication(int (*)(int, char**), int, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/elsid/dev/openmw/components/debug/debugging.cpp:205 (openmw+0x125df1c)
    #9 main /home/elsid/dev/openmw/apps/openmw/main.cpp:328 (openmw+0x596323)
2021-08-08 02:28:59 +02:00
..
bsa Merge branch 'noreturn' into 'master' 2021-06-24 19:21:29 +00:00
bullethelpers Detect and ignore updates for oscillating objects 2021-04-18 23:00:13 +02:00
compiler Console command "reload lua" 2021-07-09 20:24:56 +02:00
config change setValue to replace value instead of insert 2021-07-05 13:22:46 +00:00
contentselector Sprinkle some const ref 2021-06-25 21:54:35 +02:00
crashcatcher Fix MSVC's C4267 warnings 2021-05-12 10:34:39 +04:00
debug Fixing performance-faster-string-find issues 2021-05-10 22:44:07 -05:00
detournavigator Copy only required RecastMeshObject fields 2021-08-07 12:38:01 +02:00
esm Merge branch 'OpenCS-moved-reference' into 'master' 2021-08-03 23:29:05 +00:00
esmterrain Replace zeroes and nulls by nullptrs 2020-11-29 11:14:07 +04:00
fallback Fixing performance-faster-string-find issues 2021-05-10 22:44:07 -05:00
files Make it possible to opt out of composing variables 2021-08-01 02:47:10 +01:00
fontloader Delete an outdated/irrelevant comment 2021-06-29 22:52:40 +02:00
interpreter Sprinkle some const ref 2021-06-25 21:54:35 +02:00
loadinglistener Always center loading screen progress bar by height when there is active message box 2021-05-26 23:29:37 +02:00
lua Lua command core.quit 2021-08-04 19:14:24 +03:00
misc Sprinkle some const ref 2021-06-25 21:54:35 +02:00
myguiplatform add shader path for mygui (#6162) 2021-07-22 15:55:30 -07:00
nif Handle NiExtraData *properly* 2021-07-27 07:58:57 +03:00
nifbullet Sprinkle some [[noreturn]] where possible 2021-06-22 12:51:08 +02:00
nifosg refactor and fix wobbly shores 2021-08-04 17:49:57 -07:00
process Remove redundant includes 2019-02-23 08:02:12 +04:00
queries Add missing include from sol/sol.hpp 2021-07-10 01:01:50 +02:00
resource refactor and fix wobbly shores 2021-08-04 17:49:57 -07:00
sceneutil Reset mIsReleased before starting threads 2021-08-08 02:28:59 +02:00
sdlutil Merge branch 'windowing-system-cleanup' into 'master' 2021-07-25 21:01:06 +00:00
settings Sprinkle some [[noreturn]] where possible 2021-06-22 12:51:08 +02:00
shader Actually increment iterators to be erased. 2021-07-17 20:47:55 +01:00
terrain refactor and fix wobbly shores 2021-08-04 17:49:57 -07:00
to_utf8 Replace a handrolled memcpy with an actual call to memcpy 2021-06-22 12:52:29 +02:00
translation Replace all NULLs to nullptr 2018-10-09 10:21:12 +04:00
version Allow getting available version information even when clone is shallow 2017-03-07 21:53:49 +01:00
vfs Minor optimisation in VFS::FileSystemArchive::listResources 2021-06-23 12:46:44 +02:00
widgets Fix MSVC's C4267 warnings 2021-05-12 10:34:39 +04:00
CMakeLists.txt Stereo friendly StateSetUpdater 2021-07-26 14:01:02 +02:00
doc.hpp