Skip to content

Instantly share code, notes, and snippets.

@kodo-pp
Created August 21, 2018 22:59
Show Gist options
  • Save kodo-pp/9d3b5dcdc2bf2b0559abd18ff184f4ea to your computer and use it in GitHub Desktop.
Save kodo-pp/9d3b5dcdc2bf2b0559abd18ff184f4ea to your computer and use it in GitHub Desktop.
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7ff29ee1c508 by thread T1:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xdfe0)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 8 at 0x7ff29ee1c508 by thread T3:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xd25b)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 2457600 at 0x7ff29ec7c000 allocated by main thread:
#0 operator new[](unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:48 (libtsan.so.0+0x75ddc)
#1 main <null> (main+0x30cd)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T3 (tid=13903, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x6ad6) in void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7ff29ee1d918 by thread T1:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xdfe0)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 8 at 0x7ff29ee1d918 by thread T3:
[failed to restore the stack]
Location is heap block of size 2457600 at 0x7ff29ec7c000 allocated by main thread:
#0 operator new[](unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:48 (libtsan.so.0+0x75ddc)
#1 main <null> (main+0x30cd)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T3 (tid=13903, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x6ad6) in void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7ff29ee1ecd0 by thread T1:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xd6e1)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 8 at 0x7ff29ee1ecd0 by thread T4:
[failed to restore the stack]
Location is heap block of size 2457600 at 0x7ff29ec7c000 allocated by main thread:
#0 operator new[](unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:48 (libtsan.so.0+0x75ddc)
#1 main <null> (main+0x30cd)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T4 (tid=13904, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x6ad6) in void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7ff29ed89770 by thread T3:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xd6e1)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 8 at 0x7ff29ed89770 by thread T1:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xdb58)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 2457600 at 0x7ff29ec7c000 allocated by main thread:
#0 operator new[](unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:48 (libtsan.so.0+0x75ddc)
#1 main <null> (main+0x30cd)
Thread T3 (tid=13903, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x6ad6) in void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7ff29ed8ab78 by thread T3:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xd700)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 8 at 0x7ff29ed8ab78 by thread T1:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xdb75)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 2457600 at 0x7ff29ec7c000 allocated by main thread:
#0 operator new[](unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:48 (libtsan.so.0+0x75ddc)
#1 main <null> (main+0x30cd)
Thread T3 (tid=13903, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x6ad6) in void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7ff29ee09848 by thread T3:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xdffd)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 8 at 0x7ff29ee09848 by thread T1:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xdfe0)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 2457600 at 0x7ff29ec7c000 allocated by main thread:
#0 operator new[](unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:48 (libtsan.so.0+0x75ddc)
#1 main <null> (main+0x30cd)
Thread T3 (tid=13903, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x6ad6) in void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7ff29ed897b0 by thread T1:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xd25b)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 8 at 0x7ff29ed897b0 by thread T2:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xdb58)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 2457600 at 0x7ff29ec7c000 allocated by main thread:
#0 operator new[](unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:48 (libtsan.so.0+0x75ddc)
#1 main <null> (main+0x30cd)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T2 (tid=13902, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x6ad6) in void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7ff29ed86fb8 by thread T1:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xd26f)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 8 at 0x7ff29ed86fb8 by thread T2:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xdb58)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 2457600 at 0x7ff29ec7c000 allocated by main thread:
#0 operator new[](unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:48 (libtsan.so.0+0x75ddc)
#1 main <null> (main+0x30cd)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T2 (tid=13902, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x6ad6) in void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7ff29ed897d0 by thread T2:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xdb75)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 8 at 0x7ff29ed897d0 by thread T1:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xdb58)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 2457600 at 0x7ff29ec7c000 allocated by main thread:
#0 operator new[](unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:48 (libtsan.so.0+0x75ddc)
#1 main <null> (main+0x30cd)
Thread T2 (tid=13902, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x6ad6) in void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7ff29ee367b0 by thread T4:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xc8fb)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 8 at 0x7ff29ee367b0 by thread T1:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xdb75)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 2457600 at 0x7ff29ec7c000 allocated by main thread:
#0 operator new[](unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:48 (libtsan.so.0+0x75ddc)
#1 main <null> (main+0x30cd)
Thread T4 (tid=13904, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x6ad6) in void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7ff29ee37bb0 by thread T4:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xc8fb)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 8 at 0x7ff29ee37bb0 by thread T3:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xd700)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 2457600 at 0x7ff29ec7c000 allocated by main thread:
#0 operator new[](unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:48 (libtsan.so.0+0x75ddc)
#1 main <null> (main+0x30cd)
Thread T4 (tid=13904, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T3 (tid=13903, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x6ad6) in void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7ff29ee38fb0 by thread T4:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xc8fb)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 8 at 0x7ff29ee38fb0 by thread T3:
[failed to restore the stack]
Location is heap block of size 2457600 at 0x7ff29ec7c000 allocated by main thread:
#0 operator new[](unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:48 (libtsan.so.0+0x75ddc)
#1 main <null> (main+0x30cd)
Thread T4 (tid=13904, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T3 (tid=13903, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x6ad6) in void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7ff29ee33fe8 by thread T4:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xc919)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 8 at 0x7ff29ee33fe8 by thread T1:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xdb58)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 2457600 at 0x7ff29ec7c000 allocated by main thread:
#0 operator new[](unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:48 (libtsan.so.0+0x75ddc)
#1 main <null> (main+0x30cd)
Thread T4 (tid=13904, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x6ad6) in void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7ff29ee353d0 by thread T4:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xc919)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 8 at 0x7ff29ee353d0 by thread T1:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xdb75)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 2457600 at 0x7ff29ec7c000 allocated by main thread:
#0 operator new[](unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:48 (libtsan.so.0+0x75ddc)
#1 main <null> (main+0x30cd)
Thread T4 (tid=13904, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x6ad6) in void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7ff29ed87028 by thread T4:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xdb58)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 8 at 0x7ff29ed87028 by thread T2:
[failed to restore the stack]
Location is heap block of size 2457600 at 0x7ff29ec7c000 allocated by main thread:
#0 operator new[](unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:48 (libtsan.so.0+0x75ddc)
#1 main <null> (main+0x30cd)
Thread T4 (tid=13904, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T2 (tid=13902, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x6ad6) in void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7ff29ee1ff88 by thread T3:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xdb58)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 8 at 0x7ff29ee1ff88 by thread T2:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xdb58)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 2457600 at 0x7ff29ec7c000 allocated by main thread:
#0 operator new[](unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:48 (libtsan.so.0+0x75ddc)
#1 main <null> (main+0x30cd)
Thread T3 (tid=13903, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T2 (tid=13902, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x6ad6) in void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7ff29ede7bf0 by thread T3:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xd6e1)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 8 at 0x7ff29ede7bf0 by thread T1:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xc8fb)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 2457600 at 0x7ff29ec7c000 allocated by main thread:
#0 operator new[](unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:48 (libtsan.so.0+0x75ddc)
#1 main <null> (main+0x30cd)
Thread T3 (tid=13903, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x6ad6) in void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7ff29edeb5d8 by thread T4:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xdb75)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 8 at 0x7ff29edeb5d8 by thread T2:
[failed to restore the stack]
Location is heap block of size 2457600 at 0x7ff29ec7c000 allocated by main thread:
#0 operator new[](unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:48 (libtsan.so.0+0x75ddc)
#1 main <null> (main+0x30cd)
Thread T4 (tid=13904, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T2 (tid=13902, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x6ad6) in void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7ff29eec59e8 by thread T1:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xc8fb)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 8 at 0x7ff29eec59e8 by thread T3:
#0 void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*) <null> (main+0x6ad6)
#1 void drawTriangle3d<void*>(screen&, coords const&, coords const&, coords const&, void*) <null> (main+0x7d71)
#2 void drawBlock<void*>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, void*) <null> (main+0xdfe0)
#3 worker(worker_shared*, int, bool) <null> (main+0xf9ed)
#4 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#5 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 2457600 at 0x7ff29ec7c000 allocated by main thread:
#0 operator new[](unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:48 (libtsan.so.0+0x75ddc)
#1 main <null> (main+0x30cd)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T3 (tid=13903, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x6ad6) in void drawTriangle<void*>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, void*)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7ffce71a3440 by main thread:
#0 render(std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, player_pos const&, screen&) <null> (main+0x12b2f)
#1 main <null> (main+0x512c)
Previous read of size 8 at 0x7ffce71a3440 by thread T1:
[failed to restore the stack]
Location is stack of main thread.
Location is global '<null>' at 0x000000000000 ([stack]+0x00000001f440)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x12b2f) in render(std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, player_pos const&, screen&)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7ffce71a3448 by main thread:
#0 render(std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, player_pos const&, screen&) <null> (main+0x12b6c)
#1 main <null> (main+0x512c)
Previous read of size 8 at 0x7ffce71a3448 by thread T4:
[failed to restore the stack]
Location is stack of main thread.
Location is global '<null>' at 0x000000000000 ([stack]+0x00000001f448)
Thread T4 (tid=13904, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x12b6c) in render(std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, player_pos const&, screen&)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 8 at 0x7b0c00006458 by main thread:
#0 render(std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, player_pos const&, screen&) <null> (main+0x12cd0)
#1 main <null> (main+0x512c)
Previous read of size 8 at 0x7b0c00006458 by thread T4:
[failed to restore the stack]
Location is heap block of size 48 at 0x7b0c00006450 allocated by main thread:
#0 operator new(unsigned long) /build/gcc/src/gcc/libsanitizer/tsan/tsan_new_delete.cc:42 (libtsan.so.0+0x75d0c)
#1 render(std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, player_pos const&, screen&) <null> (main+0x141e9)
#2 main <null> (main+0x512c)
Thread T4 (tid=13904, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x12cd0) in render(std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, player_pos const&, screen&)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 4 at 0x7ff29ef9bc24 by thread T3:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xb279)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 4 at 0x7ff29ef9bc24 by thread T2:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xb279)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 1228800 at 0x7ff29eed5000 allocated by main thread:
#0 malloc /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:606 (libtsan.so.0+0x2af84)
#1 main <null> (main+0x304d)
Thread T3 (tid=13903, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T2 (tid=13902, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x671b) in void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 4 at 0x7ff29ef5395c by thread T4:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xc010)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 4 at 0x7ff29ef5395c by thread T2:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xc010)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 1228800 at 0x7ff29eed5000 allocated by main thread:
#0 malloc /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:606 (libtsan.so.0+0x2af84)
#1 main <null> (main+0x304d)
Thread T4 (tid=13904, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T2 (tid=13902, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x671b) in void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 4 at 0x7ff29ef51b5c by thread T3:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xbbf3)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 4 at 0x7ff29ef51b5c by thread T2:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xb76b)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 1228800 at 0x7ff29eed5000 allocated by main thread:
#0 malloc /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:606 (libtsan.so.0+0x2af84)
#1 main <null> (main+0x304d)
Thread T3 (tid=13903, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T2 (tid=13902, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x671b) in void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 4 at 0x7ff29ef51b60 by thread T3:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xc010)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 4 at 0x7ff29ef51b60 by thread T2:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xb76b)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 1228800 at 0x7ff29eed5000 allocated by main thread:
#0 malloc /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:606 (libtsan.so.0+0x2af84)
#1 main <null> (main+0x304d)
Thread T3 (tid=13903, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T2 (tid=13902, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x671b) in void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 4 at 0x7ff29ef9c658 by thread T3:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xb76b)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 4 at 0x7ff29ef9c658 by thread T4:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xb76b)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 1228800 at 0x7ff29eed5000 allocated by main thread:
#0 malloc /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:606 (libtsan.so.0+0x2af84)
#1 main <null> (main+0x304d)
Thread T3 (tid=13903, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T4 (tid=13904, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x671b) in void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 4 at 0x7ff29ef96cb8 by thread T2:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xc010)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 4 at 0x7ff29ef96cb8 by thread T1:
[failed to restore the stack]
Location is heap block of size 1228800 at 0x7ff29eed5000 allocated by main thread:
#0 malloc /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:606 (libtsan.so.0+0x2af84)
#1 main <null> (main+0x304d)
Thread T2 (tid=13902, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x671b) in void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 4 at 0x7ff29ef81958 by thread T3:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x9132)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xb279)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 4 at 0x7ff29ef81958 by thread T1:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x9132)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xc010)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 1228800 at 0x7ff29eed5000 allocated by main thread:
#0 malloc /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:606 (libtsan.so.0+0x2af84)
#1 main <null> (main+0x304d)
Thread T3 (tid=13903, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x671b) in void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 4 at 0x7ff29ef82d54 by thread T3:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xb279)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 4 at 0x7ff29ef82d54 by thread T2:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xb76b)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 1228800 at 0x7ff29eed5000 allocated by main thread:
#0 malloc /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:606 (libtsan.so.0+0x2af84)
#1 main <null> (main+0x304d)
Thread T3 (tid=13903, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T2 (tid=13902, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x671b) in void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 4 at 0x7ff29ef54d14 by thread T2:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xc010)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 4 at 0x7ff29ef54d14 by thread T1:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xbbf3)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 1228800 at 0x7ff29eed5000 allocated by main thread:
#0 malloc /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:606 (libtsan.so.0+0x2af84)
#1 main <null> (main+0x304d)
Thread T2 (tid=13902, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x671b) in void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 4 at 0x7ff29ef55714 by thread T2:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xc010)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 4 at 0x7ff29ef55714 by thread T1:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x9132)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xbbf3)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 1228800 at 0x7ff29eed5000 allocated by main thread:
#0 malloc /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:606 (libtsan.so.0+0x2af84)
#1 main <null> (main+0x304d)
Thread T2 (tid=13902, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x671b) in void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 4 at 0x7ff29ef53030 by thread T1:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xbbf3)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 4 at 0x7ff29ef53030 by thread T2:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x9132)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xbbf3)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 1228800 at 0x7ff29eed5000 allocated by main thread:
#0 malloc /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:606 (libtsan.so.0+0x2af84)
#1 main <null> (main+0x304d)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T2 (tid=13902, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x671b) in void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 4 at 0x7ff29ef91d2c by thread T2:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xb76b)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 4 at 0x7ff29ef91d2c by thread T4:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x9132)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xb279)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 1228800 at 0x7ff29eed5000 allocated by main thread:
#0 malloc /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:606 (libtsan.so.0+0x2af84)
#1 main <null> (main+0x304d)
Thread T2 (tid=13902, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T4 (tid=13904, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x671b) in void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 4 at 0x7ff29ef5bb64 by thread T4:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xb76b)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 4 at 0x7ff29ef5bb64 by thread T1:
[failed to restore the stack]
Location is heap block of size 1228800 at 0x7ff29eed5000 allocated by main thread:
#0 malloc /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:606 (libtsan.so.0+0x2af84)
#1 main <null> (main+0x304d)
Thread T4 (tid=13904, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x671b) in void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 4 at 0x7ff29ef59cb4 by thread T3:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x9132)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xbbf3)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 4 at 0x7ff29ef59cb4 by thread T4:
[failed to restore the stack]
Location is heap block of size 1228800 at 0x7ff29eed5000 allocated by main thread:
#0 malloc /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:606 (libtsan.so.0+0x2af84)
#1 main <null> (main+0x304d)
Thread T3 (tid=13903, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T4 (tid=13904, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x671b) in void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 4 at 0x7ff29ef74ed8 by thread T2:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xa8ed)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 4 at 0x7ff29ef74ed8 by thread T4:
[failed to restore the stack]
Location is heap block of size 1228800 at 0x7ff29eed5000 allocated by main thread:
#0 malloc /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:606 (libtsan.so.0+0x2af84)
#1 main <null> (main+0x304d)
Thread T2 (tid=13902, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T4 (tid=13904, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x671b) in void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 4 at 0x7ff29ef83560 by thread T1:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x9132)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xa8ed)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 4 at 0x7ff29ef83560 by thread T4:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x9132)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xbbf3)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 1228800 at 0x7ff29eed5000 allocated by main thread:
#0 malloc /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:606 (libtsan.so.0+0x2af84)
#1 main <null> (main+0x304d)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T4 (tid=13904, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x671b) in void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 4 at 0x7ff29ef83f60 by thread T1:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x9132)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xa8ed)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 4 at 0x7ff29ef83f60 by thread T4:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xbbf3)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 1228800 at 0x7ff29eed5000 allocated by main thread:
#0 malloc /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:606 (libtsan.so.0+0x2af84)
#1 main <null> (main+0x304d)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T4 (tid=13904, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x671b) in void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 4 at 0x7ff29ef9bb4c by thread T4:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xa8ed)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 4 at 0x7ff29ef9bb4c by thread T3:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xb76b)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 1228800 at 0x7ff29eed5000 allocated by main thread:
#0 malloc /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:606 (libtsan.so.0+0x2af84)
#1 main <null> (main+0x304d)
Thread T4 (tid=13904, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T3 (tid=13903, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x671b) in void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int)
==================
==================
WARNING: ThreadSanitizer: data race (pid=13839)
Write of size 4 at 0x7ff29ef7f9c0 by thread T3:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x9132)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xa8ed)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Previous write of size 4 at 0x7ff29ef7f9c0 by thread T1:
#0 void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int) <null> (main+0x671b)
#1 void drawTriangle3d<int>(screen&, coords const&, coords const&, coords const&, int) <null> (main+0x7491)
#2 drawTexture(screen&, coords const&, coords const&, coords const&, coords const&, int) <null> (main+0x910d)
#3 void drawBlock<int>(screen&, std::vector<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, std::allocator<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > > > const&, int, int, int, player_pos const&, int) <null> (main+0xa8ed)
#4 worker(worker_shared*, int, bool) <null> (main+0xfb3b)
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(worker_shared*, int, bool), worker_shared*, int, bool> > >::_M_run() <null> (main+0x7e02)
#6 execute_native_thread_routine /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xbc042)
Location is heap block of size 1228800 at 0x7ff29eed5000 allocated by main thread:
#0 malloc /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:606 (libtsan.so.0+0x2af84)
#1 main <null> (main+0x304d)
Thread T3 (tid=13903, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
Thread T1 (tid=13901, running) created by main thread at:
#0 pthread_create /build/gcc/src/gcc/libsanitizer/tsan/tsan_interceptors.cc:915 (libtsan.so.0+0x2bf03)
#1 __gthread_create /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:662 (libstdc++.so.6+0xbc339)
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xbc339)
#3 main <null> (main+0x512c)
SUMMARY: ThreadSanitizer: data race (/home/kodopp/Projects/SoftCraft/main+0x671b) in void drawTriangle<int>(screen&, std::pair<int, int> const&, std::pair<int, int> const&, std::pair<int, int> const&, int)
==================
^CThreadSanitizer: reported 46 warnings
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment