Created
May 14, 2020 20:35
-
-
Save HappyCerberus/0a2326ad478c75e666291f9d12141540 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
================== | |
WARNING: ThreadSanitizer: data race (pid=9616) | |
Read of size 8 at 0x556bf9a5ab58 by thread T4: | |
#0 git_pool__system_page_size external/libgit2/src/pool.c:28 (demo+0x6a932) | |
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f) | |
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769) | |
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2) | |
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201) | |
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e) | |
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e) | |
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1) | |
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0) | |
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626) | |
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#18 <null> <null> (libstdc++.so.6+0xd6f73) | |
Previous write of size 8 at 0x556bf9a5ab58 by thread T1: | |
#0 git_pool__system_page_size external/libgit2/src/pool.c:33 (demo+0x6a982) | |
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f) | |
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769) | |
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2) | |
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201) | |
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e) | |
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e) | |
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1) | |
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0) | |
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626) | |
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#18 <null> <null> (libstdc++.so.6+0xd6f73) | |
Location is global 'size.9753' of size 8 at 0x556bf9a5ab58 (demo+0x0000004a6b58) | |
Thread T4 (tid=9621, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:115 (demo+0x222ee) | |
#5 main multi_threading/demo.cc:63 (demo+0x21cca) | |
Thread T1 (tid=9618, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
SUMMARY: ThreadSanitizer: data race external/libgit2/src/pool.c:28 in git_pool__system_page_size | |
================== | |
================== | |
WARNING: ThreadSanitizer: data race (pid=9616) | |
Read of size 8 at 0x556bf9a5ab58 by thread T5: | |
#0 git_pool__system_page_size external/libgit2/src/pool.c:28 (demo+0x6a932) | |
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f) | |
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769) | |
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2) | |
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201) | |
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e) | |
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e) | |
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1) | |
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0) | |
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626) | |
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#18 <null> <null> (libstdc++.so.6+0xd6f73) | |
Previous write of size 8 at 0x556bf9a5ab58 by thread T1: | |
#0 git_pool__system_page_size external/libgit2/src/pool.c:33 (demo+0x6a982) | |
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f) | |
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769) | |
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2) | |
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201) | |
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e) | |
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e) | |
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1) | |
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0) | |
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626) | |
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#18 <null> <null> (libstdc++.so.6+0xd6f73) | |
Location is global 'size.9753' of size 8 at 0x556bf9a5ab58 (demo+0x0000004a6b58) | |
Thread T5 (tid=9622, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
Thread T1 (tid=9618, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
SUMMARY: ThreadSanitizer: data race external/libgit2/src/pool.c:28 in git_pool__system_page_size | |
================== | |
================== | |
WARNING: ThreadSanitizer: data race (pid=9616) | |
Read of size 8 at 0x556bf9a5ab58 by thread T3: | |
#0 git_pool__system_page_size external/libgit2/src/pool.c:28 (demo+0x6a932) | |
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f) | |
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769) | |
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2) | |
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201) | |
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e) | |
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e) | |
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1) | |
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0) | |
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626) | |
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#18 <null> <null> (libstdc++.so.6+0xd6f73) | |
Previous write of size 8 at 0x556bf9a5ab58 by thread T1: | |
#0 git_pool__system_page_size external/libgit2/src/pool.c:33 (demo+0x6a982) | |
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f) | |
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769) | |
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2) | |
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201) | |
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e) | |
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e) | |
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1) | |
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0) | |
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626) | |
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#18 <null> <null> (libstdc++.so.6+0xd6f73) | |
Location is global 'size.9753' of size 8 at 0x556bf9a5ab58 (demo+0x0000004a6b58) | |
Thread T3 (tid=9620, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
Thread T1 (tid=9618, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
SUMMARY: ThreadSanitizer: data race external/libgit2/src/pool.c:28 in git_pool__system_page_size | |
================== | |
================== | |
WARNING: ThreadSanitizer: data race (pid=9616) | |
Read of size 8 at 0x556bf9a5ab58 by thread T2: | |
#0 git_pool__system_page_size external/libgit2/src/pool.c:28 (demo+0x6a932) | |
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f) | |
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769) | |
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2) | |
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201) | |
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e) | |
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e) | |
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1) | |
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0) | |
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626) | |
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#18 <null> <null> (libstdc++.so.6+0xd6f73) | |
Previous write of size 8 at 0x556bf9a5ab58 by thread T1: | |
#0 git_pool__system_page_size external/libgit2/src/pool.c:33 (demo+0x6a982) | |
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f) | |
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769) | |
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2) | |
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201) | |
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e) | |
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e) | |
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1) | |
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0) | |
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626) | |
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#18 <null> <null> (libstdc++.so.6+0xd6f73) | |
Location is global 'size.9753' of size 8 at 0x556bf9a5ab58 (demo+0x0000004a6b58) | |
Thread T2 (tid=9619, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
Thread T1 (tid=9618, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
SUMMARY: ThreadSanitizer: data race external/libgit2/src/pool.c:28 in git_pool__system_page_size | |
================== | |
================== | |
WARNING: ThreadSanitizer: data race (pid=9616) | |
Read of size 8 at 0x556bf9a5ab58 by thread T7: | |
#0 git_pool__system_page_size external/libgit2/src/pool.c:28 (demo+0x6a932) | |
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f) | |
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769) | |
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2) | |
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201) | |
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e) | |
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e) | |
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1) | |
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0) | |
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626) | |
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#18 <null> <null> (libstdc++.so.6+0xd6f73) | |
Previous write of size 8 at 0x556bf9a5ab58 by thread T1: | |
#0 git_pool__system_page_size external/libgit2/src/pool.c:33 (demo+0x6a982) | |
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f) | |
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769) | |
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2) | |
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201) | |
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e) | |
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e) | |
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1) | |
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0) | |
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626) | |
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#18 <null> <null> (libstdc++.so.6+0xd6f73) | |
Location is global 'size.9753' of size 8 at 0x556bf9a5ab58 (demo+0x0000004a6b58) | |
Thread T7 (tid=9624, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:115 (demo+0x222ee) | |
#5 main multi_threading/demo.cc:63 (demo+0x21cca) | |
Thread T1 (tid=9618, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
SUMMARY: ThreadSanitizer: data race external/libgit2/src/pool.c:28 in git_pool__system_page_size | |
================== | |
================== | |
WARNING: ThreadSanitizer: data race (pid=9616) | |
Read of size 8 at 0x556bf9a5ab58 by thread T6: | |
#0 git_pool__system_page_size external/libgit2/src/pool.c:28 (demo+0x6a932) | |
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f) | |
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769) | |
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2) | |
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201) | |
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e) | |
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e) | |
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1) | |
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0) | |
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626) | |
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#18 <null> <null> (libstdc++.so.6+0xd6f73) | |
Previous write of size 8 at 0x556bf9a5ab58 by thread T1: | |
#0 git_pool__system_page_size external/libgit2/src/pool.c:33 (demo+0x6a982) | |
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f) | |
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769) | |
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2) | |
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201) | |
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e) | |
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e) | |
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1) | |
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0) | |
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626) | |
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#18 <null> <null> (libstdc++.so.6+0xd6f73) | |
Location is global 'size.9753' of size 8 at 0x556bf9a5ab58 (demo+0x0000004a6b58) | |
Thread T6 (tid=9623, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:115 (demo+0x222ee) | |
#5 main multi_threading/demo.cc:63 (demo+0x21cca) | |
Thread T1 (tid=9618, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
SUMMARY: ThreadSanitizer: data race external/libgit2/src/pool.c:28 in git_pool__system_page_size | |
================== | |
================== | |
WARNING: ThreadSanitizer: data race (pid=9616) | |
Read of size 8 at 0x556bf9a5ab58 by thread T8: | |
#0 git_pool__system_page_size external/libgit2/src/pool.c:28 (demo+0x6a932) | |
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f) | |
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769) | |
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2) | |
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201) | |
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e) | |
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e) | |
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1) | |
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0) | |
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626) | |
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#18 <null> <null> (libstdc++.so.6+0xd6f73) | |
Previous write of size 8 at 0x556bf9a5ab58 by thread T1: | |
#0 git_pool__system_page_size external/libgit2/src/pool.c:33 (demo+0x6a982) | |
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f) | |
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769) | |
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2) | |
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201) | |
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e) | |
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e) | |
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1) | |
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0) | |
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626) | |
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#18 <null> <null> (libstdc++.so.6+0xd6f73) | |
Location is global 'size.9753' of size 8 at 0x556bf9a5ab58 (demo+0x0000004a6b58) | |
Thread T8 (tid=9625, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:115 (demo+0x222ee) | |
#5 main multi_threading/demo.cc:63 (demo+0x21cca) | |
Thread T1 (tid=9618, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
SUMMARY: ThreadSanitizer: data race external/libgit2/src/pool.c:28 in git_pool__system_page_size | |
================== | |
================== | |
WARNING: ThreadSanitizer: data race (pid=9616) | |
Read of size 8 at 0x556bf9a5ab58 by thread T9: | |
#0 git_pool__system_page_size external/libgit2/src/pool.c:28 (demo+0x6a932) | |
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f) | |
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769) | |
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2) | |
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201) | |
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e) | |
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e) | |
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1) | |
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0) | |
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626) | |
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#18 <null> <null> (libstdc++.so.6+0xd6f73) | |
Previous write of size 8 at 0x556bf9a5ab58 by thread T1: | |
#0 git_pool__system_page_size external/libgit2/src/pool.c:33 (demo+0x6a982) | |
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f) | |
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769) | |
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2) | |
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201) | |
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e) | |
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e) | |
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1) | |
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0) | |
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626) | |
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#18 <null> <null> (libstdc++.so.6+0xd6f73) | |
Location is global 'size.9753' of size 8 at 0x556bf9a5ab58 (demo+0x0000004a6b58) | |
Thread T9 (tid=9626, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
Thread T1 (tid=9618, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
SUMMARY: ThreadSanitizer: data race external/libgit2/src/pool.c:28 in git_pool__system_page_size | |
================== | |
================== | |
WARNING: ThreadSanitizer: data race (pid=9616) | |
Read of size 8 at 0x556bf9a5ab58 by thread T10: | |
#0 git_pool__system_page_size external/libgit2/src/pool.c:28 (demo+0x6a932) | |
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f) | |
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769) | |
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2) | |
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201) | |
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e) | |
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e) | |
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1) | |
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0) | |
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626) | |
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#18 <null> <null> (libstdc++.so.6+0xd6f73) | |
Previous write of size 8 at 0x556bf9a5ab58 by thread T1: | |
#0 git_pool__system_page_size external/libgit2/src/pool.c:33 (demo+0x6a982) | |
#1 git_pool_init external/libgit2/src/pool.c:47 (demo+0x6aa4f) | |
#2 git_sortedcache_new external/libgit2/src/sortedcache.c:28 (demo+0x98769) | |
#3 git_refdb_backend_fs external/libgit2/src/refdb_fs.c:2152 (demo+0x754b2) | |
#4 git_refdb_open external/libgit2/src/refdb.c:49 (demo+0x6d201) | |
#5 git_repository_refdb__weakptr external/libgit2/src/repository.c:1152 (demo+0x9252e) | |
#6 git_reference_lookup_resolved external/libgit2/src/refs.c:237 (demo+0x7bf5e) | |
#7 git_reference_lookup external/libgit2/src/refs.c:175 (demo+0x7bcc1) | |
#8 git_repository_is_empty external/libgit2/src/repository.c:2311 (demo+0x95db0) | |
#9 clone_into external/libgit2/src/clone.c:332 (demo+0x25626) | |
#10 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#11 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#12 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#13 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#14 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#15 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#16 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#17 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#18 <null> <null> (libstdc++.so.6+0xd6f73) | |
Location is global 'size.9753' of size 8 at 0x556bf9a5ab58 (demo+0x0000004a6b58) | |
Thread T10 (tid=9627, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:115 (demo+0x222ee) | |
#5 main multi_threading/demo.cc:63 (demo+0x21cca) | |
Thread T1 (tid=9618, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
SUMMARY: ThreadSanitizer: data race external/libgit2/src/pool.c:28 in git_pool__system_page_size | |
================== | |
================== | |
WARNING: ThreadSanitizer: data race (pid=9616) | |
Read of size 1 at 0x556bf9a5ac40 by thread T9: | |
#0 http_client_parser_settings external/libgit2/src/transports/httpclient.c:1079 (demo+0x1099e2) | |
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1109 (demo+0x109b60) | |
#2 git_http_client_read_response external/libgit2/src/transports/httpclient.c:1381 (demo+0x10a981) | |
#3 http_stream_read external/libgit2/src/transports/http.c:403 (demo+0xfc9c4) | |
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da) | |
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9) | |
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe) | |
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164) | |
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8) | |
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067) | |
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a) | |
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#19 <null> <null> (libstdc++.so.6+0xd6f73) | |
Previous write of size 1 at 0x556bf9a5ac40 by thread T1: | |
#0 http_client_parser_settings external/libgit2/src/transports/httpclient.c:1086 (demo+0x109a82) | |
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1109 (demo+0x109b60) | |
#2 git_http_client_read_response external/libgit2/src/transports/httpclient.c:1381 (demo+0x10a981) | |
#3 http_stream_read external/libgit2/src/transports/http.c:403 (demo+0xfc9c4) | |
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da) | |
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9) | |
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe) | |
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164) | |
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8) | |
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067) | |
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a) | |
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#19 <null> <null> (libstdc++.so.6+0xd6f73) | |
Location is global 'parser_settings_initialized' of size 1 at 0x556bf9a5ac40 (demo+0x0000004a6c40) | |
Thread T9 (tid=9626, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
Thread T1 (tid=9618, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
SUMMARY: ThreadSanitizer: data race external/libgit2/src/transports/httpclient.c:1079 in http_client_parser_settings | |
================== | |
================== | |
WARNING: ThreadSanitizer: data race (pid=9616) | |
Read of size 8 at 0x556bf9a5ac70 by thread T9: | |
#0 http_parser_execute external/libgit2/deps/http-parser/http_parser.c:1336 (demo+0x17788e) | |
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1108 (demo+0x109b75) | |
#2 git_http_client_read_response external/libgit2/src/transports/httpclient.c:1381 (demo+0x10a981) | |
#3 http_stream_read external/libgit2/src/transports/http.c:403 (demo+0xfc9c4) | |
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da) | |
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9) | |
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe) | |
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164) | |
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8) | |
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067) | |
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a) | |
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#19 <null> <null> (libstdc++.so.6+0xd6f73) | |
Previous write of size 8 at 0x556bf9a5ac70 by thread T1: | |
#0 http_client_parser_settings external/libgit2/src/transports/httpclient.c:1080 (demo+0x109a00) | |
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1109 (demo+0x109b60) | |
#2 git_http_client_read_response external/libgit2/src/transports/httpclient.c:1381 (demo+0x10a981) | |
#3 http_stream_read external/libgit2/src/transports/http.c:403 (demo+0xfc9c4) | |
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da) | |
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9) | |
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe) | |
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164) | |
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8) | |
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067) | |
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a) | |
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#19 <null> <null> (libstdc++.so.6+0xd6f73) | |
Location is global 'parser_settings' of size 56 at 0x556bf9a5ac60 (demo+0x0000004a6c70) | |
Thread T9 (tid=9626, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
Thread T1 (tid=9618, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
SUMMARY: ThreadSanitizer: data race external/libgit2/deps/http-parser/http_parser.c:1336 in http_parser_execute | |
================== | |
================== | |
WARNING: ThreadSanitizer: data race (pid=9616) | |
Read of size 8 at 0x556bf9a5ac78 by thread T9: | |
#0 http_parser_execute external/libgit2/deps/http-parser/http_parser.c:1428 (demo+0x1780a6) | |
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1108 (demo+0x109b75) | |
#2 git_http_client_read_response external/libgit2/src/transports/httpclient.c:1381 (demo+0x10a981) | |
#3 http_stream_read external/libgit2/src/transports/http.c:403 (demo+0xfc9c4) | |
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da) | |
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9) | |
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe) | |
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164) | |
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8) | |
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067) | |
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a) | |
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#19 <null> <null> (libstdc++.so.6+0xd6f73) | |
Previous write of size 8 at 0x556bf9a5ac78 by thread T1: | |
#0 http_client_parser_settings external/libgit2/src/transports/httpclient.c:1081 (demo+0x109a1a) | |
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1109 (demo+0x109b60) | |
#2 git_http_client_read_response external/libgit2/src/transports/httpclient.c:1381 (demo+0x10a981) | |
#3 http_stream_read external/libgit2/src/transports/http.c:403 (demo+0xfc9c4) | |
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da) | |
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9) | |
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe) | |
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164) | |
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8) | |
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067) | |
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a) | |
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#19 <null> <null> (libstdc++.so.6+0xd6f73) | |
Location is global 'parser_settings' of size 56 at 0x556bf9a5ac60 (demo+0x0000004a6c78) | |
Thread T9 (tid=9626, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
Thread T1 (tid=9618, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
SUMMARY: ThreadSanitizer: data race external/libgit2/deps/http-parser/http_parser.c:1428 in http_parser_execute | |
================== | |
================== | |
WARNING: ThreadSanitizer: data race (pid=9616) | |
Read of size 8 at 0x556bf9a5ac80 by thread T9: | |
#0 http_parser_execute external/libgit2/deps/http-parser/http_parser.c:1581 (demo+0x178a61) | |
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1108 (demo+0x109b75) | |
#2 git_http_client_read_response external/libgit2/src/transports/httpclient.c:1381 (demo+0x10a981) | |
#3 http_stream_read external/libgit2/src/transports/http.c:403 (demo+0xfc9c4) | |
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da) | |
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9) | |
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe) | |
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164) | |
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8) | |
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067) | |
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a) | |
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#19 <null> <null> (libstdc++.so.6+0xd6f73) | |
Previous write of size 8 at 0x556bf9a5ac80 by thread T1: | |
#0 http_client_parser_settings external/libgit2/src/transports/httpclient.c:1082 (demo+0x109a34) | |
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1109 (demo+0x109b60) | |
#2 git_http_client_read_response external/libgit2/src/transports/httpclient.c:1381 (demo+0x10a981) | |
#3 http_stream_read external/libgit2/src/transports/http.c:403 (demo+0xfc9c4) | |
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da) | |
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9) | |
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe) | |
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164) | |
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8) | |
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067) | |
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a) | |
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#19 <null> <null> (libstdc++.so.6+0xd6f73) | |
Location is global 'parser_settings' of size 56 at 0x556bf9a5ac60 (demo+0x0000004a6c80) | |
Thread T9 (tid=9626, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
Thread T1 (tid=9618, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
SUMMARY: ThreadSanitizer: data race external/libgit2/deps/http-parser/http_parser.c:1581 in http_parser_execute | |
================== | |
================== | |
WARNING: ThreadSanitizer: data race (pid=9616) | |
Read of size 8 at 0x556bf9a5ac88 by thread T9: | |
#0 http_parser_execute external/libgit2/deps/http-parser/http_parser.c:1802 (demo+0x179b73) | |
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1108 (demo+0x109b75) | |
#2 git_http_client_read_body external/libgit2/src/transports/httpclient.c:1427 (demo+0x10aba5) | |
#3 http_stream_read external/libgit2/src/transports/http.c:422 (demo+0xfcb76) | |
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da) | |
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9) | |
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe) | |
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164) | |
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8) | |
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067) | |
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a) | |
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#19 <null> <null> (libstdc++.so.6+0xd6f73) | |
Previous write of size 8 at 0x556bf9a5ac88 by thread T1: | |
#0 http_client_parser_settings external/libgit2/src/transports/httpclient.c:1083 (demo+0x109a4e) | |
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1109 (demo+0x109b60) | |
#2 git_http_client_read_response external/libgit2/src/transports/httpclient.c:1381 (demo+0x10a981) | |
#3 http_stream_read external/libgit2/src/transports/http.c:403 (demo+0xfc9c4) | |
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da) | |
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9) | |
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe) | |
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164) | |
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8) | |
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067) | |
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a) | |
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#19 <null> <null> (libstdc++.so.6+0xd6f73) | |
Location is global 'parser_settings' of size 56 at 0x556bf9a5ac60 (demo+0x0000004a6c88) | |
Thread T9 (tid=9626, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
Thread T1 (tid=9618, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
SUMMARY: ThreadSanitizer: data race external/libgit2/deps/http-parser/http_parser.c:1802 in http_parser_execute | |
================== | |
================== | |
WARNING: ThreadSanitizer: data race (pid=9616) | |
Read of size 8 at 0x556bf9a5ac88 by thread T8: | |
#0 http_parser_execute external/libgit2/deps/http-parser/http_parser.c:1802 (demo+0x179b73) | |
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1108 (demo+0x109b75) | |
#2 git_http_client_read_body external/libgit2/src/transports/httpclient.c:1427 (demo+0x10aba5) | |
#3 http_stream_read external/libgit2/src/transports/http.c:422 (demo+0xfcb76) | |
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da) | |
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9) | |
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe) | |
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164) | |
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8) | |
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067) | |
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a) | |
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#19 <null> <null> (libstdc++.so.6+0xd6f73) | |
Previous write of size 8 at 0x556bf9a5ac88 by thread T1: | |
#0 http_client_parser_settings external/libgit2/src/transports/httpclient.c:1083 (demo+0x109a4e) | |
#1 client_read_and_parse external/libgit2/src/transports/httpclient.c:1109 (demo+0x109b60) | |
#2 git_http_client_read_response external/libgit2/src/transports/httpclient.c:1381 (demo+0x10a981) | |
#3 http_stream_read external/libgit2/src/transports/http.c:403 (demo+0xfc9c4) | |
#4 git_smart__recv_cb external/libgit2/src/transports/smart.c:25 (demo+0x1123da) | |
#5 gitno_recv external/libgit2/src/netops.c:20 (demo+0x1035e9) | |
#6 git_smart__store_refs external/libgit2/src/transports/smart_protocol.c:56 (demo+0x14a2fe) | |
#7 git_smart__connect external/libgit2/src/transports/smart.c:255 (demo+0x113164) | |
#8 git_remote__connect external/libgit2/src/remote.c:748 (demo+0x86ee8) | |
#9 git_remote_fetch external/libgit2/src/remote.c:1020 (demo+0x88067) | |
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a) | |
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#19 <null> <null> (libstdc++.so.6+0xd6f73) | |
Location is global 'parser_settings' of size 56 at 0x556bf9a5ac60 (demo+0x0000004a6c88) | |
Thread T8 (tid=9625, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:115 (demo+0x222ee) | |
#5 main multi_threading/demo.cc:63 (demo+0x21cca) | |
Thread T1 (tid=9618, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
SUMMARY: ThreadSanitizer: data race external/libgit2/deps/http-parser/http_parser.c:1802 in http_parser_execute | |
================== | |
================== | |
WARNING: ThreadSanitizer: data race (pid=9616) | |
Write of size 8 at 0x7b0400000dd0 by thread T8: | |
#0 free <null> (libtsan.so.0+0x2cf6b) | |
#1 <null> <null> (libc.so.6+0xd50e1) | |
#2 git_signature_now external/libgit2/src/signature.c:170 (demo+0x9a24a) | |
#3 git_signature_default external/libgit2/src/signature.c:192 (demo+0x9a3ea) | |
#4 git_reference__log_signature external/libgit2/src/refs.c:498 (demo+0x7cd74) | |
#5 git_reference_create_matching external/libgit2/src/refs.c:521 (demo+0x7ce59) | |
#6 git_reference_create external/libgit2/src/refs.c:539 (demo+0x7cf30) | |
#7 create_branch external/libgit2/src/clone.c:48 (demo+0x24937) | |
#8 create_tracking_branch external/libgit2/src/clone.c:102 (demo+0x24bc1) | |
#9 update_head_to_new_branch external/libgit2/src/clone.c:124 (demo+0x24c8f) | |
#10 update_head_to_remote external/libgit2/src/clone.c:189 (demo+0x24f9d) | |
#11 checkout_branch external/libgit2/src/clone.c:315 (demo+0x254f2) | |
#12 clone_into external/libgit2/src/clone.c:348 (demo+0x257a1) | |
#13 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#14 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#15 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#16 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#17 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#18 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#19 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#20 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#21 <null> <null> (libstdc++.so.6+0xd6f73) | |
Previous write of size 8 at 0x7b0400000dd0 by thread T2: | |
#0 malloc <null> (libtsan.so.0+0x2cbe6) | |
#1 __strdup <null> (libc.so.6+0xa253e) | |
#2 git_signature_now external/libgit2/src/signature.c:170 (demo+0x9a24a) | |
#3 git_signature_default external/libgit2/src/signature.c:192 (demo+0x9a3ea) | |
#4 git_reference__log_signature external/libgit2/src/refs.c:498 (demo+0x7cd74) | |
#5 git_reference_create_matching external/libgit2/src/refs.c:521 (demo+0x7ce59) | |
#6 git_reference_create external/libgit2/src/refs.c:539 (demo+0x7cf30) | |
#7 update_tips_for_spec external/libgit2/src/remote.c:1451 (demo+0x8999c) | |
#8 git_remote_update_tips external/libgit2/src/remote.c:1654 (demo+0x8a591) | |
#9 git_remote_fetch external/libgit2/src/remote.c:1041 (demo+0x88150) | |
#10 clone_into external/libgit2/src/clone.c:345 (demo+0x2574a) | |
#11 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#12 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#13 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#14 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#15 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#16 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#17 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#18 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#19 <null> <null> (libstdc++.so.6+0xd6f73) | |
Thread T8 (tid=9625, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:115 (demo+0x222ee) | |
#5 main multi_threading/demo.cc:63 (demo+0x21cca) | |
Thread T2 (tid=9619, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x2cf6b) in free | |
================== | |
================== | |
WARNING: ThreadSanitizer: data race (pid=9616) | |
Atomic write of size 4 at 0x556bf9a5abf4 by thread T1 (mutexes: write M70): | |
#0 __tsan_atomic32_fetch_add <null> (libtsan.so.0+0x6c101) | |
#1 git_atomic_add external/libgit2/src/thread-utils.h:82 (demo+0xba3ad) | |
#2 cache_store external/libgit2/src/cache.c:200 (demo+0xbaeb9) | |
#3 git_cache_store_raw external/libgit2/src/cache.c:231 (demo+0xbb02d) | |
#4 odb_read_1 external/libgit2/src/odb.c:1095 (demo+0x56ad3) | |
#5 git_odb_read external/libgit2/src/odb.c:1116 (demo+0x56c3f) | |
#6 git_object_lookup_prefix external/libgit2/src/object.c:221 (demo+0xfe7a8) | |
#7 git_object_lookup external/libgit2/src/object.c:252 (demo+0xfe8ce) | |
#8 git_commit_lookup external/libgit2/src/object_api.c:23 (demo+0x528e0) | |
#9 create_branch external/libgit2/src/clone.c:41 (demo+0x248c3) | |
#10 create_tracking_branch external/libgit2/src/clone.c:102 (demo+0x24bc1) | |
#11 update_head_to_new_branch external/libgit2/src/clone.c:124 (demo+0x24c8f) | |
#12 update_head_to_remote external/libgit2/src/clone.c:189 (demo+0x24f9d) | |
#13 checkout_branch external/libgit2/src/clone.c:315 (demo+0x254f2) | |
#14 clone_into external/libgit2/src/clone.c:348 (demo+0x257a1) | |
#15 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#16 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#17 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#18 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#19 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#20 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#21 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#22 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#23 <null> <null> (libstdc++.so.6+0xd6f73) | |
Previous read of size 4 at 0x556bf9a5abf4 by thread T8 (mutexes: write M359): | |
#0 cache_store external/libgit2/src/cache.c:192 (demo+0xbad9e) | |
#1 git_cache_store_parsed external/libgit2/src/cache.c:237 (demo+0xbb08d) | |
#2 git_object__from_odb_object external/libgit2/src/object.c:148 (demo+0xfe411) | |
#3 git_object_lookup_prefix external/libgit2/src/object.c:244 (demo+0xfe844) | |
#4 git_object_lookup external/libgit2/src/object.c:252 (demo+0xfe8ce) | |
#5 git_commit_lookup external/libgit2/src/object_api.c:23 (demo+0x528e0) | |
#6 create_branch external/libgit2/src/clone.c:41 (demo+0x248c3) | |
#7 create_tracking_branch external/libgit2/src/clone.c:102 (demo+0x24bc1) | |
#8 update_head_to_new_branch external/libgit2/src/clone.c:124 (demo+0x24c8f) | |
#9 update_head_to_remote external/libgit2/src/clone.c:189 (demo+0x24f9d) | |
#10 checkout_branch external/libgit2/src/clone.c:315 (demo+0x254f2) | |
#11 clone_into external/libgit2/src/clone.c:348 (demo+0x257a1) | |
#12 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#13 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#14 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#15 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#16 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#17 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#18 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#19 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#20 <null> <null> (libstdc++.so.6+0xd6f73) | |
Location is global 'git_cache__current_storage' of size 4 at 0x556bf9a5abf4 (demo+0x0000004a6bf4) | |
Mutex M70 (0x7b440000ff28) created at: | |
#0 pthread_rwlock_init <null> (libtsan.so.0+0x2ef82) | |
#1 git_cache_init external/libgit2/src/cache.c:72 (demo+0xba78c) | |
#2 repository_alloc external/libgit2/src/repository.c:245 (demo+0x8ec44) | |
#3 git_repository_open_ext external/libgit2/src/repository.c:829 (demo+0x911de) | |
#4 git_repository_open external/libgit2/src/repository.c:887 (demo+0x91607) | |
#5 git_repository_init_ext external/libgit2/src/repository.c:2112 (demo+0x953b5) | |
#6 git_repository_init external/libgit2/src/repository.c:2056 (demo+0x94e5b) | |
#7 default_repository_create external/libgit2/src/clone.c:234 (demo+0x2517f) | |
#8 git__clone external/libgit2/src/clone.c:420 (demo+0x25c0c) | |
#9 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#10 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#11 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#12 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#13 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#14 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#15 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#16 <null> <null> (libstdc++.so.6+0xd6f73) | |
Mutex M359 (0x7b4400050028) created at: | |
#0 pthread_rwlock_init <null> (libtsan.so.0+0x2ef82) | |
#1 git_cache_init external/libgit2/src/cache.c:72 (demo+0xba78c) | |
#2 repository_alloc external/libgit2/src/repository.c:245 (demo+0x8ec44) | |
#3 git_repository_open_ext external/libgit2/src/repository.c:829 (demo+0x911de) | |
#4 git_repository_open external/libgit2/src/repository.c:887 (demo+0x91607) | |
#5 git_repository_init_ext external/libgit2/src/repository.c:2112 (demo+0x953b5) | |
#6 git_repository_init external/libgit2/src/repository.c:2056 (demo+0x94e5b) | |
#7 default_repository_create external/libgit2/src/clone.c:234 (demo+0x2517f) | |
#8 git__clone external/libgit2/src/clone.c:420 (demo+0x25c0c) | |
#9 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#10 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#11 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#12 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#13 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#14 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#15 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#16 <null> <null> (libstdc++.so.6+0xd6f73) | |
Thread T1 (tid=9618, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
Thread T8 (tid=9625, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:115 (demo+0x222ee) | |
#5 main multi_threading/demo.cc:63 (demo+0x21cca) | |
SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x6c101) in __tsan_atomic32_fetch_add | |
================== | |
================== | |
WARNING: ThreadSanitizer: data race (pid=9616) | |
Atomic write of size 4 at 0x556bf9a5abf4 by thread T2 (mutexes: write M71): | |
#0 __tsan_atomic32_fetch_add <null> (libtsan.so.0+0x6c101) | |
#1 git_atomic_add external/libgit2/src/thread-utils.h:82 (demo+0xba3ad) | |
#2 cache_store external/libgit2/src/cache.c:200 (demo+0xbaeb9) | |
#3 git_cache_store_raw external/libgit2/src/cache.c:231 (demo+0xbb02d) | |
#4 odb_read_1 external/libgit2/src/odb.c:1095 (demo+0x56ad3) | |
#5 git_odb_read external/libgit2/src/odb.c:1116 (demo+0x56c3f) | |
#6 git_object_lookup_prefix external/libgit2/src/object.c:221 (demo+0xfe7a8) | |
#7 git_object_lookup external/libgit2/src/object.c:252 (demo+0xfe8ce) | |
#8 git_commit_lookup external/libgit2/src/object_api.c:23 (demo+0x528e0) | |
#9 create_branch external/libgit2/src/clone.c:41 (demo+0x248c3) | |
#10 create_tracking_branch external/libgit2/src/clone.c:102 (demo+0x24bc1) | |
#11 update_head_to_new_branch external/libgit2/src/clone.c:124 (demo+0x24c8f) | |
#12 update_head_to_remote external/libgit2/src/clone.c:189 (demo+0x24f9d) | |
#13 checkout_branch external/libgit2/src/clone.c:315 (demo+0x254f2) | |
#14 clone_into external/libgit2/src/clone.c:348 (demo+0x257a1) | |
#15 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#16 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#17 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#18 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#19 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#20 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#21 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#22 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#23 <null> <null> (libstdc++.so.6+0xd6f73) | |
Previous read of size 4 at 0x556bf9a5abf4 by thread T1 (mutexes: write M70): | |
#0 cache_store external/libgit2/src/cache.c:192 (demo+0xbad9e) | |
#1 git_cache_store_raw external/libgit2/src/cache.c:231 (demo+0xbb02d) | |
#2 odb_read_1 external/libgit2/src/odb.c:1095 (demo+0x56ad3) | |
#3 git_odb_read external/libgit2/src/odb.c:1116 (demo+0x56c3f) | |
#4 git_object_lookup_prefix external/libgit2/src/object.c:221 (demo+0xfe7a8) | |
#5 git_object_lookup external/libgit2/src/object.c:252 (demo+0xfe8ce) | |
#6 git_commit_lookup external/libgit2/src/object_api.c:23 (demo+0x528e0) | |
#7 create_branch external/libgit2/src/clone.c:41 (demo+0x248c3) | |
#8 create_tracking_branch external/libgit2/src/clone.c:102 (demo+0x24bc1) | |
#9 update_head_to_new_branch external/libgit2/src/clone.c:124 (demo+0x24c8f) | |
#10 update_head_to_remote external/libgit2/src/clone.c:189 (demo+0x24f9d) | |
#11 checkout_branch external/libgit2/src/clone.c:315 (demo+0x254f2) | |
#12 clone_into external/libgit2/src/clone.c:348 (demo+0x257a1) | |
#13 git__clone external/libgit2/src/clone.c:432 (demo+0x25dc4) | |
#14 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#15 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#16 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#17 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#18 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#19 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#20 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#21 <null> <null> (libstdc++.so.6+0xd6f73) | |
Location is global 'git_cache__current_storage' of size 4 at 0x556bf9a5abf4 (demo+0x0000004a6bf4) | |
Mutex M71 (0x7b4400019f28) created at: | |
#0 pthread_rwlock_init <null> (libtsan.so.0+0x2ef82) | |
#1 git_cache_init external/libgit2/src/cache.c:72 (demo+0xba78c) | |
#2 repository_alloc external/libgit2/src/repository.c:245 (demo+0x8ec44) | |
#3 git_repository_open_ext external/libgit2/src/repository.c:829 (demo+0x911de) | |
#4 git_repository_open external/libgit2/src/repository.c:887 (demo+0x91607) | |
#5 git_repository_init_ext external/libgit2/src/repository.c:2112 (demo+0x953b5) | |
#6 git_repository_init external/libgit2/src/repository.c:2056 (demo+0x94e5b) | |
#7 default_repository_create external/libgit2/src/clone.c:234 (demo+0x2517f) | |
#8 git__clone external/libgit2/src/clone.c:420 (demo+0x25c0c) | |
#9 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#10 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#11 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#12 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#13 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#14 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#15 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#16 <null> <null> (libstdc++.so.6+0xd6f73) | |
Mutex M70 (0x7b440000ff28) created at: | |
#0 pthread_rwlock_init <null> (libtsan.so.0+0x2ef82) | |
#1 git_cache_init external/libgit2/src/cache.c:72 (demo+0xba78c) | |
#2 repository_alloc external/libgit2/src/repository.c:245 (demo+0x8ec44) | |
#3 git_repository_open_ext external/libgit2/src/repository.c:829 (demo+0x911de) | |
#4 git_repository_open external/libgit2/src/repository.c:887 (demo+0x91607) | |
#5 git_repository_init_ext external/libgit2/src/repository.c:2112 (demo+0x953b5) | |
#6 git_repository_init external/libgit2/src/repository.c:2056 (demo+0x94e5b) | |
#7 default_repository_create external/libgit2/src/clone.c:234 (demo+0x2517f) | |
#8 git__clone external/libgit2/src/clone.c:420 (demo+0x25c0c) | |
#9 git_clone external/libgit2/src/clone.c:463 (demo+0x25f3d) | |
#10 encapsulated_clone() multi_threading/demo.cc:55 (demo+0x21be0) | |
#11 void std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) /usr/include/c++/9/bits/invoke.h:60 (demo+0x246e6) | |
#12 std::__invoke_result<void (*)()>::type std::__invoke<void (*)()>(void (*&&)()) /usr/include/c++/9/bits/invoke.h:95 (demo+0x24639) | |
#13 void std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/include/c++/9/thread:244 (demo+0x2458c) | |
#14 std::thread::_Invoker<std::tuple<void (*)()> >::operator()() /usr/include/c++/9/thread:251 (demo+0x2452e) | |
#15 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() /usr/include/c++/9/thread:195 (demo+0x244e0) | |
#16 <null> <null> (libstdc++.so.6+0xd6f73) | |
Thread T2 (tid=9619, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
Thread T1 (tid=9618, running) created by main thread at: | |
#0 pthread_create <null> (libtsan.so.0+0x2dc82) | |
#1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xd7238) | |
#2 void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, void (&)()>(std::thread*, void (&)()) /usr/include/c++/9/ext/new_allocator.h:147 (demo+0x22afc) | |
#3 void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, void (&)()>(std::allocator<std::thread>&, std::thread*, void (&)()) /usr/include/c++/9/bits/alloc_traits.h:484 (demo+0x225bf) | |
#4 void std::vector<std::thread, std::allocator<std::thread> >::_M_realloc_insert<void (&)()>(__gnu_cxx::__normal_iterator<std::thread*, std::vector<std::thread, std::allocator<std::thread> > >, void (&)()) /usr/include/c++/9/bits/vector.tcc:449 (demo+0x22764) | |
#5 void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<void (&)()>(void (&)()) /usr/include/c++/9/bits/vector.tcc:121 (demo+0x22354) | |
#6 main multi_threading/demo.cc:63 (demo+0x21cca) | |
SUMMARY: ThreadSanitizer: data race (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x6c101) in __tsan_atomic32_fetch_add | |
================== | |
ThreadSanitizer: reported 18 warnings |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment