Last active
August 29, 2015 14:25
-
-
Save Naios/440983e9c6c9971b6aa3 to your computer and use it in GitHub Desktop.
This file contains hidden or 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
==7472== Helgrind, a thread error detector | |
==7472== Copyright (C) 2007-2013, and GNU GPL'd, by OpenWorks LLP et al. | |
==7472== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info | |
==7472== Command: build/continue_test | |
==7472== Parent PID: 7471 | |
==7472== | |
==7472== ---Thread-Announcement------------------------------------------ | |
==7472== | |
==7472== Thread #1 is the program's root thread | |
==7472== | |
==7472== ---Thread-Announcement------------------------------------------ | |
==7472== | |
==7472== Thread #3 was created | |
==7472== at 0x598FEAE: clone (clone.S:74) | |
==7472== by 0x4E44179: create_thread (createthread.c:102) | |
==7472== by 0x4E45E20: pthread_create@@GLIBC_2.2.5 (pthread_create.c:677) | |
==7472== by 0x4C31E3D: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x5116F68: std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== by 0x472355: std::thread::thread<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}>(DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}&&) (thread:138) | |
==7472== by 0x4722C5: void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}>(std::thread*, DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}&&) (new_allocator.h:120) | |
==7472== by 0x47226C: _ZNSt16allocator_traitsISaISt6threadEE12_S_constructIS0_JZN14DispatcherPoolC1EjEUlvE_EEENSt9enable_ifIXsr6__and_INS2_18__construct_helperIT_JDpT0_EE4typeEEE5valueEvE4typeERS1_PS8_DpOS9_ (alloc_traits.h:253) | |
==7472== by 0x4717FF: _ZNSt16allocator_traitsISaISt6threadEE9constructIS0_JZN14DispatcherPoolC1EjEUlvE_EEEDTcl12_S_constructfp_fp0_spclsr3stdE7forwardIT0_Efp1_EEERS1_PT_DpOS6_ (alloc_traits.h:399) | |
==7472== by 0x4718A9: void std::vector<std::thread, std::allocator<std::thread> >::_M_emplace_back_aux<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}>(DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}&&) (vector.tcc:416) | |
==7472== by 0x4717AF: void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}>(DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}&&) (vector.tcc:101) | |
==7472== by 0x453953: DispatcherPool::DispatcherPool(unsigned int) (test.cpp:295) | |
==7472== | |
==7472== ---------------------------------------------------------------- | |
==7472== | |
==7472== Possible data race during write of size 8 at 0x5C56CA0 by thread #1 | |
==7472== Locks held: none | |
==7472== at 0x4573DA: store (atomic_base.h:478) | |
==7472== by 0x4573DA: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:2377) | |
==7472== by 0x455634: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::inner_enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:1217) | |
==7472== by 0x45400F: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::enqueue(std::function<void ()>&&) (concurrentqueue.h:853) | |
==7472== by 0x44D9F1: void DispatcherPool::Dispatch<main::$_11>(main::$_11&&) (test.cpp:342) | |
==7472== by 0x44D168: main (test.cpp:708) | |
==7472== | |
==7472== This conflicts with a previous read of size 8 by thread #3 | |
==7472== Locks held: none | |
==7472== at 0x474DF7: load (atomic_base.h:500) | |
==7472== by 0x474DF7: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:2385) | |
==7472== by 0x4742AB: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ProducerBase::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:1560) | |
==7472== by 0x473A5A: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::try_dequeue<std::function<void ()> >(moodycamel::ConsumerToken&, std::function<void ()>&) (concurrentqueue.h:1043) | |
==7472== by 0x473481: DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}::operator()() const (test.cpp:303) | |
==7472== by 0x4733D4: void std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1699) | |
==7472== by 0x4733A4: std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::operator()() (functional:1688) | |
==7472== by 0x47337B: std::thread::_Impl<std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115) | |
==7472== by 0x5116E2F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== Address 0x5c56ca0 is 32 bytes inside a block of size 104 alloc'd | |
==7472== at 0x4C2CFC0: malloc (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x458E34: moodycamel::ConcurrentQueueDefaultTraits::malloc(unsigned long) (concurrentqueue.h:261) | |
==7472== by 0x45A7FD: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer* moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::create<moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer, moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>*>(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>*&&) (concurrentqueue.h:3435) | |
==7472== by 0x45A1B0: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::recycle_or_create_producer(bool, bool&) (concurrentqueue.h:3062) | |
==7472== by 0x456636: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::get_or_add_implicit_producer() (concurrentqueue.h:3308) | |
==7472== by 0x4555F8: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::inner_enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:1216) | |
==7472== by 0x45400F: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::enqueue(std::function<void ()>&&) (concurrentqueue.h:853) | |
==7472== by 0x44D9F1: void DispatcherPool::Dispatch<main::$_11>(main::$_11&&) (test.cpp:342) | |
==7472== by 0x44D168: main (test.cpp:708) | |
==7472== Block was alloc'd by thread #1 | |
==7472== | |
==7472== ---------------------------------------------------------------- | |
==7472== | |
==7472== Possible data race during read of size 8 at 0x5C56CA0 by thread #3 | |
==7472== Locks held: none | |
==7472== at 0x474DF7: load (atomic_base.h:500) | |
==7472== by 0x474DF7: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:2385) | |
==7472== by 0x4742AB: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ProducerBase::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:1560) | |
==7472== by 0x473A5A: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::try_dequeue<std::function<void ()> >(moodycamel::ConsumerToken&, std::function<void ()>&) (concurrentqueue.h:1043) | |
==7472== by 0x473481: DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}::operator()() const (test.cpp:303) | |
==7472== by 0x4733D4: void std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1699) | |
==7472== by 0x4733A4: std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::operator()() (functional:1688) | |
==7472== by 0x47337B: std::thread::_Impl<std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115) | |
==7472== by 0x5116E2F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== by 0x4C31FD6: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x4E456A9: start_thread (pthread_create.c:333) | |
==7472== by 0x598FEEC: clone (clone.S:109) | |
==7472== | |
==7472== This conflicts with a previous write of size 8 by thread #1 | |
==7472== Locks held: none | |
==7472== at 0x4573DA: store (atomic_base.h:478) | |
==7472== by 0x4573DA: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:2377) | |
==7472== by 0x455634: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::inner_enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:1217) | |
==7472== by 0x45400F: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::enqueue(std::function<void ()>&&) (concurrentqueue.h:853) | |
==7472== by 0x44D9F1: void DispatcherPool::Dispatch<main::$_11>(main::$_11&&) (test.cpp:342) | |
==7472== by 0x44D168: main (test.cpp:708) | |
==7472== Address 0x5c56ca0 is 32 bytes inside a block of size 104 alloc'd | |
==7472== at 0x4C2CFC0: malloc (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x458E34: moodycamel::ConcurrentQueueDefaultTraits::malloc(unsigned long) (concurrentqueue.h:261) | |
==7472== by 0x45A7FD: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer* moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::create<moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer, moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>*>(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>*&&) (concurrentqueue.h:3435) | |
==7472== by 0x45A1B0: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::recycle_or_create_producer(bool, bool&) (concurrentqueue.h:3062) | |
==7472== by 0x456636: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::get_or_add_implicit_producer() (concurrentqueue.h:3308) | |
==7472== by 0x4555F8: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::inner_enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:1216) | |
==7472== by 0x45400F: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::enqueue(std::function<void ()>&&) (concurrentqueue.h:853) | |
==7472== by 0x44D9F1: void DispatcherPool::Dispatch<main::$_11>(main::$_11&&) (test.cpp:342) | |
==7472== by 0x44D168: main (test.cpp:708) | |
==7472== Block was alloc'd by thread #1 | |
==7472== | |
==7472== ---------------------------------------------------------------- | |
==7472== | |
==7472== Possible data race during read of size 8 at 0x5C54F20 by thread #3 | |
==7472== Locks held: none | |
==7472== at 0x458909: void std::swap<std::_Any_data>(std::_Any_data&, std::_Any_data&) (move.h:175) | |
==7472== by 0x4588A6: std::function<void ()>::swap(std::function<void ()>&) (functional:2328) | |
==7472== by 0x4581BC: std::function<void ()>::function(std::function<void ()>&&) (functional:2203) | |
==7472== by 0x4756D2: std::function<void ()>::operator=(std::function<void ()>&&) (functional:2261) | |
==7472== by 0x475484: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:2425) | |
==7472== by 0x4742AB: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ProducerBase::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:1560) | |
==7472== by 0x473A5A: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::try_dequeue<std::function<void ()> >(moodycamel::ConsumerToken&, std::function<void ()>&) (concurrentqueue.h:1043) | |
==7472== by 0x473481: DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}::operator()() const (test.cpp:303) | |
==7472== by 0x4733D4: void std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1699) | |
==7472== by 0x4733A4: std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::operator()() (functional:1688) | |
==7472== by 0x47337B: std::thread::_Impl<std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115) | |
==7472== by 0x5116E2F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== | |
==7472== This conflicts with a previous write of size 8 by thread #1 | |
==7472== Locks held: none | |
==7472== at 0x458953: void std::swap<std::_Any_data>(std::_Any_data&, std::_Any_data&) (move.h:177) | |
==7472== by 0x4588A6: std::function<void ()>::swap(std::function<void ()>&) (functional:2328) | |
==7472== by 0x4581BC: std::function<void ()>::function(std::function<void ()>&&) (functional:2203) | |
==7472== by 0x45731D: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:2375) | |
==7472== by 0x455634: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::inner_enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:1217) | |
==7472== by 0x45400F: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::enqueue(std::function<void ()>&&) (concurrentqueue.h:853) | |
==7472== by 0x44D9F1: void DispatcherPool::Dispatch<main::$_11>(main::$_11&&) (test.cpp:342) | |
==7472== by 0x44D168: main (test.cpp:708) | |
==7472== Address 0x5c54f20 is 80 bytes inside a block of size 6,576 alloc'd | |
==7472== at 0x4C2CFC0: malloc (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x458E34: moodycamel::ConcurrentQueueDefaultTraits::malloc(unsigned long) (concurrentqueue.h:261) | |
==7472== by 0x4763CD: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::Block* moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::create_array<moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::Block>(unsigned long) (concurrentqueue.h:3402) | |
==7472== by 0x476307: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::populate_initial_block_list(unsigned long) (concurrentqueue.h:2864) | |
==7472== by 0x47171B: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ConcurrentQueue(unsigned long) (concurrentqueue.h:666) | |
==7472== by 0x453921: DispatcherPool::DispatcherPool(unsigned int) (test.cpp:292) | |
==7472== by 0x4539E3: DispatcherPool::DispatcherPool() (test.cpp:289) | |
==7472== by 0x44D002: main (test.cpp:689) | |
==7472== Block was alloc'd by thread #1 | |
==7472== | |
==7472== ---------------------------------------------------------------- | |
==7472== | |
==7472== Possible data race during read of size 8 at 0x5C54F28 by thread #3 | |
==7472== Locks held: none | |
==7472== at 0x458910: void std::swap<std::_Any_data>(std::_Any_data&, std::_Any_data&) (move.h:175) | |
==7472== by 0x4588A6: std::function<void ()>::swap(std::function<void ()>&) (functional:2328) | |
==7472== by 0x4581BC: std::function<void ()>::function(std::function<void ()>&&) (functional:2203) | |
==7472== by 0x4756D2: std::function<void ()>::operator=(std::function<void ()>&&) (functional:2261) | |
==7472== by 0x475484: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:2425) | |
==7472== by 0x4742AB: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ProducerBase::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:1560) | |
==7472== by 0x473A5A: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::try_dequeue<std::function<void ()> >(moodycamel::ConsumerToken&, std::function<void ()>&) (concurrentqueue.h:1043) | |
==7472== by 0x473481: DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}::operator()() const (test.cpp:303) | |
==7472== by 0x4733D4: void std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1699) | |
==7472== by 0x4733A4: std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::operator()() (functional:1688) | |
==7472== by 0x47337B: std::thread::_Impl<std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115) | |
==7472== by 0x5116E2F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== | |
==7472== This conflicts with a previous write of size 8 by thread #1 | |
==7472== Locks held: none | |
==7472== at 0x45895A: void std::swap<std::_Any_data>(std::_Any_data&, std::_Any_data&) (move.h:177) | |
==7472== by 0x4588A6: std::function<void ()>::swap(std::function<void ()>&) (functional:2328) | |
==7472== by 0x4581BC: std::function<void ()>::function(std::function<void ()>&&) (functional:2203) | |
==7472== by 0x45731D: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:2375) | |
==7472== by 0x455634: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::inner_enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:1217) | |
==7472== by 0x45400F: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::enqueue(std::function<void ()>&&) (concurrentqueue.h:853) | |
==7472== by 0x44D9F1: void DispatcherPool::Dispatch<main::$_11>(main::$_11&&) (test.cpp:342) | |
==7472== by 0x44D168: main (test.cpp:708) | |
==7472== Address 0x5c54f28 is 88 bytes inside a block of size 6,576 alloc'd | |
==7472== at 0x4C2CFC0: malloc (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x458E34: moodycamel::ConcurrentQueueDefaultTraits::malloc(unsigned long) (concurrentqueue.h:261) | |
==7472== by 0x4763CD: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::Block* moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::create_array<moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::Block>(unsigned long) (concurrentqueue.h:3402) | |
==7472== by 0x476307: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::populate_initial_block_list(unsigned long) (concurrentqueue.h:2864) | |
==7472== by 0x47171B: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ConcurrentQueue(unsigned long) (concurrentqueue.h:666) | |
==7472== by 0x453921: DispatcherPool::DispatcherPool(unsigned int) (test.cpp:292) | |
==7472== by 0x4539E3: DispatcherPool::DispatcherPool() (test.cpp:289) | |
==7472== by 0x44D002: main (test.cpp:689) | |
==7472== Block was alloc'd by thread #1 | |
==7472== | |
==7472== ---------------------------------------------------------------- | |
==7472== | |
==7472== Possible data race during write of size 8 at 0x5C54F20 by thread #3 | |
==7472== Locks held: none | |
==7472== at 0x458934: void std::swap<std::_Any_data>(std::_Any_data&, std::_Any_data&) (move.h:176) | |
==7472== by 0x4588A6: std::function<void ()>::swap(std::function<void ()>&) (functional:2328) | |
==7472== by 0x4581BC: std::function<void ()>::function(std::function<void ()>&&) (functional:2203) | |
==7472== by 0x4756D2: std::function<void ()>::operator=(std::function<void ()>&&) (functional:2261) | |
==7472== by 0x475484: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:2425) | |
==7472== by 0x4742AB: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ProducerBase::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:1560) | |
==7472== by 0x473A5A: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::try_dequeue<std::function<void ()> >(moodycamel::ConsumerToken&, std::function<void ()>&) (concurrentqueue.h:1043) | |
==7472== by 0x473481: DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}::operator()() const (test.cpp:303) | |
==7472== by 0x4733D4: void std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1699) | |
==7472== by 0x4733A4: std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::operator()() (functional:1688) | |
==7472== by 0x47337B: std::thread::_Impl<std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115) | |
==7472== by 0x5116E2F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== | |
==7472== This conflicts with a previous write of size 8 by thread #1 | |
==7472== Locks held: none | |
==7472== at 0x458953: void std::swap<std::_Any_data>(std::_Any_data&, std::_Any_data&) (move.h:177) | |
==7472== by 0x4588A6: std::function<void ()>::swap(std::function<void ()>&) (functional:2328) | |
==7472== by 0x4581BC: std::function<void ()>::function(std::function<void ()>&&) (functional:2203) | |
==7472== by 0x45731D: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:2375) | |
==7472== by 0x455634: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::inner_enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:1217) | |
==7472== by 0x45400F: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::enqueue(std::function<void ()>&&) (concurrentqueue.h:853) | |
==7472== by 0x44D9F1: void DispatcherPool::Dispatch<main::$_11>(main::$_11&&) (test.cpp:342) | |
==7472== by 0x44D168: main (test.cpp:708) | |
==7472== Address 0x5c54f20 is 80 bytes inside a block of size 6,576 alloc'd | |
==7472== at 0x4C2CFC0: malloc (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x458E34: moodycamel::ConcurrentQueueDefaultTraits::malloc(unsigned long) (concurrentqueue.h:261) | |
==7472== by 0x4763CD: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::Block* moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::create_array<moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::Block>(unsigned long) (concurrentqueue.h:3402) | |
==7472== by 0x476307: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::populate_initial_block_list(unsigned long) (concurrentqueue.h:2864) | |
==7472== by 0x47171B: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ConcurrentQueue(unsigned long) (concurrentqueue.h:666) | |
==7472== by 0x453921: DispatcherPool::DispatcherPool(unsigned int) (test.cpp:292) | |
==7472== by 0x4539E3: DispatcherPool::DispatcherPool() (test.cpp:289) | |
==7472== by 0x44D002: main (test.cpp:689) | |
==7472== Block was alloc'd by thread #1 | |
==7472== | |
==7472== ---------------------------------------------------------------- | |
==7472== | |
==7472== Possible data race during write of size 8 at 0x5C54F28 by thread #3 | |
==7472== Locks held: none | |
==7472== at 0x45893B: void std::swap<std::_Any_data>(std::_Any_data&, std::_Any_data&) (move.h:176) | |
==7472== by 0x4588A6: std::function<void ()>::swap(std::function<void ()>&) (functional:2328) | |
==7472== by 0x4581BC: std::function<void ()>::function(std::function<void ()>&&) (functional:2203) | |
==7472== by 0x4756D2: std::function<void ()>::operator=(std::function<void ()>&&) (functional:2261) | |
==7472== by 0x475484: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:2425) | |
==7472== by 0x4742AB: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ProducerBase::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:1560) | |
==7472== by 0x473A5A: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::try_dequeue<std::function<void ()> >(moodycamel::ConsumerToken&, std::function<void ()>&) (concurrentqueue.h:1043) | |
==7472== by 0x473481: DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}::operator()() const (test.cpp:303) | |
==7472== by 0x4733D4: void std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1699) | |
==7472== by 0x4733A4: std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::operator()() (functional:1688) | |
==7472== by 0x47337B: std::thread::_Impl<std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115) | |
==7472== by 0x5116E2F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== | |
==7472== This conflicts with a previous write of size 8 by thread #1 | |
==7472== Locks held: none | |
==7472== at 0x45895A: void std::swap<std::_Any_data>(std::_Any_data&, std::_Any_data&) (move.h:177) | |
==7472== by 0x4588A6: std::function<void ()>::swap(std::function<void ()>&) (functional:2328) | |
==7472== by 0x4581BC: std::function<void ()>::function(std::function<void ()>&&) (functional:2203) | |
==7472== by 0x45731D: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:2375) | |
==7472== by 0x455634: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::inner_enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:1217) | |
==7472== by 0x45400F: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::enqueue(std::function<void ()>&&) (concurrentqueue.h:853) | |
==7472== by 0x44D9F1: void DispatcherPool::Dispatch<main::$_11>(main::$_11&&) (test.cpp:342) | |
==7472== by 0x44D168: main (test.cpp:708) | |
==7472== Address 0x5c54f28 is 88 bytes inside a block of size 6,576 alloc'd | |
==7472== at 0x4C2CFC0: malloc (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x458E34: moodycamel::ConcurrentQueueDefaultTraits::malloc(unsigned long) (concurrentqueue.h:261) | |
==7472== by 0x4763CD: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::Block* moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::create_array<moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::Block>(unsigned long) (concurrentqueue.h:3402) | |
==7472== by 0x476307: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::populate_initial_block_list(unsigned long) (concurrentqueue.h:2864) | |
==7472== by 0x47171B: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ConcurrentQueue(unsigned long) (concurrentqueue.h:666) | |
==7472== by 0x453921: DispatcherPool::DispatcherPool(unsigned int) (test.cpp:292) | |
==7472== by 0x4539E3: DispatcherPool::DispatcherPool() (test.cpp:289) | |
==7472== by 0x44D002: main (test.cpp:689) | |
==7472== Block was alloc'd by thread #1 | |
==7472== | |
==7472== ---------------------------------------------------------------- | |
==7472== | |
==7472== Possible data race during read of size 8 at 0x5C54F30 by thread #3 | |
==7472== Locks held: none | |
==7472== at 0x458989: void std::swap<bool (*)(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)>(bool (*&)(std::_Any_data&, std::_Any_data const&, std::_Manager_operation), bool (*&)(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)) (move.h:175) | |
==7472== by 0x4588C3: std::function<void ()>::swap(std::function<void ()>&) (functional:2329) | |
==7472== by 0x4581BC: std::function<void ()>::function(std::function<void ()>&&) (functional:2203) | |
==7472== by 0x4756D2: std::function<void ()>::operator=(std::function<void ()>&&) (functional:2261) | |
==7472== by 0x475484: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:2425) | |
==7472== by 0x4742AB: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ProducerBase::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:1560) | |
==7472== by 0x473A5A: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::try_dequeue<std::function<void ()> >(moodycamel::ConsumerToken&, std::function<void ()>&) (concurrentqueue.h:1043) | |
==7472== by 0x473481: DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}::operator()() const (test.cpp:303) | |
==7472== by 0x4733D4: void std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1699) | |
==7472== by 0x4733A4: std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::operator()() (functional:1688) | |
==7472== by 0x47337B: std::thread::_Impl<std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115) | |
==7472== by 0x5116E2F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== | |
==7472== This conflicts with a previous write of size 8 by thread #1 | |
==7472== Locks held: none | |
==7472== at 0x45420C: std::_Function_base::_Function_base() (functional:1993) | |
==7472== by 0x4581AF: std::function<void ()>::function(std::function<void ()>&&) (functional:2202) | |
==7472== by 0x45731D: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:2375) | |
==7472== by 0x455634: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::inner_enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:1217) | |
==7472== by 0x45400F: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::enqueue(std::function<void ()>&&) (concurrentqueue.h:853) | |
==7472== by 0x44D9F1: void DispatcherPool::Dispatch<main::$_11>(main::$_11&&) (test.cpp:342) | |
==7472== by 0x44D168: main (test.cpp:708) | |
==7472== Address 0x5c54f30 is 96 bytes inside a block of size 6,576 alloc'd | |
==7472== at 0x4C2CFC0: malloc (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x458E34: moodycamel::ConcurrentQueueDefaultTraits::malloc(unsigned long) (concurrentqueue.h:261) | |
==7472== by 0x4763CD: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::Block* moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::create_array<moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::Block>(unsigned long) (concurrentqueue.h:3402) | |
==7472== by 0x476307: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::populate_initial_block_list(unsigned long) (concurrentqueue.h:2864) | |
==7472== by 0x47171B: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ConcurrentQueue(unsigned long) (concurrentqueue.h:666) | |
==7472== by 0x453921: DispatcherPool::DispatcherPool(unsigned int) (test.cpp:292) | |
==7472== by 0x4539E3: DispatcherPool::DispatcherPool() (test.cpp:289) | |
==7472== by 0x44D002: main (test.cpp:689) | |
==7472== Block was alloc'd by thread #1 | |
==7472== | |
==7472== ---------------------------------------------------------------- | |
==7472== | |
==7472== Possible data race during write of size 8 at 0x5C54F30 by thread #3 | |
==7472== Locks held: none | |
==7472== at 0x4589A4: void std::swap<bool (*)(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)>(bool (*&)(std::_Any_data&, std::_Any_data const&, std::_Manager_operation), bool (*&)(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)) (move.h:176) | |
==7472== by 0x4588C3: std::function<void ()>::swap(std::function<void ()>&) (functional:2329) | |
==7472== by 0x4581BC: std::function<void ()>::function(std::function<void ()>&&) (functional:2203) | |
==7472== by 0x4756D2: std::function<void ()>::operator=(std::function<void ()>&&) (functional:2261) | |
==7472== by 0x475484: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:2425) | |
==7472== by 0x4742AB: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ProducerBase::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:1560) | |
==7472== by 0x473A5A: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::try_dequeue<std::function<void ()> >(moodycamel::ConsumerToken&, std::function<void ()>&) (concurrentqueue.h:1043) | |
==7472== by 0x473481: DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}::operator()() const (test.cpp:303) | |
==7472== by 0x4733D4: void std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1699) | |
==7472== by 0x4733A4: std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::operator()() (functional:1688) | |
==7472== by 0x47337B: std::thread::_Impl<std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115) | |
==7472== by 0x5116E2F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== | |
==7472== This conflicts with a previous write of size 8 by thread #1 | |
==7472== Locks held: none | |
==7472== at 0x45420C: std::_Function_base::_Function_base() (functional:1993) | |
==7472== by 0x4581AF: std::function<void ()>::function(std::function<void ()>&&) (functional:2202) | |
==7472== by 0x45731D: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:2375) | |
==7472== by 0x455634: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::inner_enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:1217) | |
==7472== by 0x45400F: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::enqueue(std::function<void ()>&&) (concurrentqueue.h:853) | |
==7472== by 0x44D9F1: void DispatcherPool::Dispatch<main::$_11>(main::$_11&&) (test.cpp:342) | |
==7472== by 0x44D168: main (test.cpp:708) | |
==7472== Address 0x5c54f30 is 96 bytes inside a block of size 6,576 alloc'd | |
==7472== at 0x4C2CFC0: malloc (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x458E34: moodycamel::ConcurrentQueueDefaultTraits::malloc(unsigned long) (concurrentqueue.h:261) | |
==7472== by 0x4763CD: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::Block* moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::create_array<moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::Block>(unsigned long) (concurrentqueue.h:3402) | |
==7472== by 0x476307: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::populate_initial_block_list(unsigned long) (concurrentqueue.h:2864) | |
==7472== by 0x47171B: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ConcurrentQueue(unsigned long) (concurrentqueue.h:666) | |
==7472== by 0x453921: DispatcherPool::DispatcherPool(unsigned int) (test.cpp:292) | |
==7472== by 0x4539E3: DispatcherPool::DispatcherPool() (test.cpp:289) | |
==7472== by 0x44D002: main (test.cpp:689) | |
==7472== Block was alloc'd by thread #1 | |
==7472== | |
==7472== ---------------------------------------------------------------- | |
==7472== | |
==7472== Possible data race during read of size 8 at 0x5C54F38 by thread #3 | |
==7472== Locks held: none | |
==7472== at 0x4589D9: void std::swap<void (*)(std::_Any_data const&)>(void (*&)(std::_Any_data const&), void (*&)(std::_Any_data const&)) (move.h:175) | |
==7472== by 0x4588E0: std::function<void ()>::swap(std::function<void ()>&) (functional:2330) | |
==7472== by 0x4581BC: std::function<void ()>::function(std::function<void ()>&&) (functional:2203) | |
==7472== by 0x4756D2: std::function<void ()>::operator=(std::function<void ()>&&) (functional:2261) | |
==7472== by 0x475484: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:2425) | |
==7472== by 0x4742AB: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ProducerBase::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:1560) | |
==7472== by 0x473A5A: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::try_dequeue<std::function<void ()> >(moodycamel::ConsumerToken&, std::function<void ()>&) (concurrentqueue.h:1043) | |
==7472== by 0x473481: DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}::operator()() const (test.cpp:303) | |
==7472== by 0x4733D4: void std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1699) | |
==7472== by 0x4733A4: std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::operator()() (functional:1688) | |
==7472== by 0x47337B: std::thread::_Impl<std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115) | |
==7472== by 0x5116E2F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== | |
==7472== This conflicts with a previous write of size 8 by thread #1 | |
==7472== Locks held: none | |
==7472== at 0x458A03: void std::swap<void (*)(std::_Any_data const&)>(void (*&)(std::_Any_data const&), void (*&)(std::_Any_data const&)) (move.h:177) | |
==7472== by 0x4588E0: std::function<void ()>::swap(std::function<void ()>&) (functional:2330) | |
==7472== by 0x4581BC: std::function<void ()>::function(std::function<void ()>&&) (functional:2203) | |
==7472== by 0x45731D: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:2375) | |
==7472== by 0x455634: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::inner_enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:1217) | |
==7472== by 0x45400F: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::enqueue(std::function<void ()>&&) (concurrentqueue.h:853) | |
==7472== by 0x44D9F1: void DispatcherPool::Dispatch<main::$_11>(main::$_11&&) (test.cpp:342) | |
==7472== by 0x44D168: main (test.cpp:708) | |
==7472== Address 0x5c54f38 is 104 bytes inside a block of size 6,576 alloc'd | |
==7472== at 0x4C2CFC0: malloc (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x458E34: moodycamel::ConcurrentQueueDefaultTraits::malloc(unsigned long) (concurrentqueue.h:261) | |
==7472== by 0x4763CD: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::Block* moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::create_array<moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::Block>(unsigned long) (concurrentqueue.h:3402) | |
==7472== by 0x476307: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::populate_initial_block_list(unsigned long) (concurrentqueue.h:2864) | |
==7472== by 0x47171B: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ConcurrentQueue(unsigned long) (concurrentqueue.h:666) | |
==7472== by 0x453921: DispatcherPool::DispatcherPool(unsigned int) (test.cpp:292) | |
==7472== by 0x4539E3: DispatcherPool::DispatcherPool() (test.cpp:289) | |
==7472== by 0x44D002: main (test.cpp:689) | |
==7472== Block was alloc'd by thread #1 | |
==7472== | |
==7472== ---------------------------------------------------------------- | |
==7472== | |
==7472== Possible data race during write of size 8 at 0x5C54F38 by thread #3 | |
==7472== Locks held: none | |
==7472== at 0x4589F4: void std::swap<void (*)(std::_Any_data const&)>(void (*&)(std::_Any_data const&), void (*&)(std::_Any_data const&)) (move.h:176) | |
==7472== by 0x4588E0: std::function<void ()>::swap(std::function<void ()>&) (functional:2330) | |
==7472== by 0x4581BC: std::function<void ()>::function(std::function<void ()>&&) (functional:2203) | |
==7472== by 0x4756D2: std::function<void ()>::operator=(std::function<void ()>&&) (functional:2261) | |
==7472== by 0x475484: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:2425) | |
==7472== by 0x4742AB: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ProducerBase::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:1560) | |
==7472== by 0x473A5A: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::try_dequeue<std::function<void ()> >(moodycamel::ConsumerToken&, std::function<void ()>&) (concurrentqueue.h:1043) | |
==7472== by 0x473481: DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}::operator()() const (test.cpp:303) | |
==7472== by 0x4733D4: void std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1699) | |
==7472== by 0x4733A4: std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::operator()() (functional:1688) | |
==7472== by 0x47337B: std::thread::_Impl<std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115) | |
==7472== by 0x5116E2F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== | |
==7472== This conflicts with a previous write of size 8 by thread #1 | |
==7472== Locks held: none | |
==7472== at 0x458A03: void std::swap<void (*)(std::_Any_data const&)>(void (*&)(std::_Any_data const&), void (*&)(std::_Any_data const&)) (move.h:177) | |
==7472== by 0x4588E0: std::function<void ()>::swap(std::function<void ()>&) (functional:2330) | |
==7472== by 0x4581BC: std::function<void ()>::function(std::function<void ()>&&) (functional:2203) | |
==7472== by 0x45731D: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:2375) | |
==7472== by 0x455634: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::inner_enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:1217) | |
==7472== by 0x45400F: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::enqueue(std::function<void ()>&&) (concurrentqueue.h:853) | |
==7472== by 0x44D9F1: void DispatcherPool::Dispatch<main::$_11>(main::$_11&&) (test.cpp:342) | |
==7472== by 0x44D168: main (test.cpp:708) | |
==7472== Address 0x5c54f38 is 104 bytes inside a block of size 6,576 alloc'd | |
==7472== at 0x4C2CFC0: malloc (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x458E34: moodycamel::ConcurrentQueueDefaultTraits::malloc(unsigned long) (concurrentqueue.h:261) | |
==7472== by 0x4763CD: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::Block* moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::create_array<moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::Block>(unsigned long) (concurrentqueue.h:3402) | |
==7472== by 0x476307: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::populate_initial_block_list(unsigned long) (concurrentqueue.h:2864) | |
==7472== by 0x47171B: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ConcurrentQueue(unsigned long) (concurrentqueue.h:666) | |
==7472== by 0x453921: DispatcherPool::DispatcherPool(unsigned int) (test.cpp:292) | |
==7472== by 0x4539E3: DispatcherPool::DispatcherPool() (test.cpp:289) | |
==7472== by 0x44D002: main (test.cpp:689) | |
==7472== Block was alloc'd by thread #1 | |
==7472== | |
==7472== ---------------------------------------------------------------- | |
==7472== | |
==7472== Possible data race during read of size 4 at 0x5C57684 by thread #3 | |
==7472== Locks held: none | |
==7472== at 0x44DE62: main::$_11::operator()() const (test.cpp:711) | |
==7472== by 0x44DC4C: std::_Function_handler<void (), main::$_11>::_M_invoke(std::_Any_data const&) (functional:2039) | |
==7472== by 0x45D6BD: std::function<void ()>::operator()() const (functional:2439) | |
==7472== by 0x473503: DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}::operator()() const (test.cpp:307) | |
==7472== by 0x4733D4: void std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1699) | |
==7472== by 0x4733A4: std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::operator()() (functional:1688) | |
==7472== by 0x47337B: std::thread::_Impl<std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115) | |
==7472== by 0x5116E2F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== by 0x4C31FD6: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x4E456A9: start_thread (pthread_create.c:333) | |
==7472== by 0x598FEEC: clone (clone.S:109) | |
==7472== Address 0x5c57684 is 20 bytes inside a block of size 32 alloc'd | |
==7472== at 0x4C2D520: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x44E581: std::_Function_base::_Base_manager<main::$_11>::_M_init_functor(std::_Any_data&, main::$_11&&, std::integral_constant<bool, false>) (functional:1955) | |
==7472== by 0x44DC0F: std::_Function_base::_Base_manager<main::$_11>::_M_init_functor(std::_Any_data&, main::$_11&&) (functional:1926) | |
==7472== by 0x44DAB5: std::function<void ()>::function<main::$_11, void>(main::$_11) (functional:2426) | |
==7472== by 0x44D9E1: void DispatcherPool::Dispatch<main::$_11>(main::$_11&&) (test.cpp:342) | |
==7472== by 0x44D168: main (test.cpp:708) | |
==7472== Block was alloc'd by thread #1 | |
==7472== | |
==7472== ---------------------------------------------------------------- | |
==7472== | |
==7472== Possible data race during read of size 4 at 0x5C57680 by thread #3 | |
==7472== Locks held: none | |
==7472== at 0x44DEB0: main::$_11::operator()() const (test.cpp:711) | |
==7472== by 0x44DC4C: std::_Function_handler<void (), main::$_11>::_M_invoke(std::_Any_data const&) (functional:2039) | |
==7472== by 0x45D6BD: std::function<void ()>::operator()() const (functional:2439) | |
==7472== by 0x473503: DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}::operator()() const (test.cpp:307) | |
==7472== by 0x4733D4: void std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1699) | |
==7472== by 0x4733A4: std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::operator()() (functional:1688) | |
==7472== by 0x47337B: std::thread::_Impl<std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115) | |
==7472== by 0x5116E2F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== by 0x4C31FD6: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x4E456A9: start_thread (pthread_create.c:333) | |
==7472== by 0x598FEEC: clone (clone.S:109) | |
==7472== Address 0x5c57680 is 16 bytes inside a block of size 32 alloc'd | |
==7472== at 0x4C2D520: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x44E581: std::_Function_base::_Base_manager<main::$_11>::_M_init_functor(std::_Any_data&, main::$_11&&, std::integral_constant<bool, false>) (functional:1955) | |
==7472== by 0x44DC0F: std::_Function_base::_Base_manager<main::$_11>::_M_init_functor(std::_Any_data&, main::$_11&&) (functional:1926) | |
==7472== by 0x44DAB5: std::function<void ()>::function<main::$_11, void>(main::$_11) (functional:2426) | |
==7472== by 0x44D9E1: void DispatcherPool::Dispatch<main::$_11>(main::$_11&&) (test.cpp:342) | |
==7472== by 0x44D168: main (test.cpp:708) | |
==7472== Block was alloc'd by thread #1 | |
==7472== | |
==7472== ---------------------------------------------------------------- | |
==7472== | |
==7472== Possible data race during read of size 4 at 0x5C57688 by thread #3 | |
==7472== Locks held: none | |
==7472== at 0x44DEF7: main::$_11::operator()() const (test.cpp:711) | |
==7472== by 0x44DC4C: std::_Function_handler<void (), main::$_11>::_M_invoke(std::_Any_data const&) (functional:2039) | |
==7472== by 0x45D6BD: std::function<void ()>::operator()() const (functional:2439) | |
==7472== by 0x473503: DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}::operator()() const (test.cpp:307) | |
==7472== by 0x4733D4: void std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1699) | |
==7472== by 0x4733A4: std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::operator()() (functional:1688) | |
==7472== by 0x47337B: std::thread::_Impl<std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115) | |
==7472== by 0x5116E2F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== by 0x4C31FD6: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x4E456A9: start_thread (pthread_create.c:333) | |
==7472== by 0x598FEEC: clone (clone.S:109) | |
==7472== Address 0x5c57688 is 24 bytes inside a block of size 32 alloc'd | |
==7472== at 0x4C2D520: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x44E581: std::_Function_base::_Base_manager<main::$_11>::_M_init_functor(std::_Any_data&, main::$_11&&, std::integral_constant<bool, false>) (functional:1955) | |
==7472== by 0x44DC0F: std::_Function_base::_Base_manager<main::$_11>::_M_init_functor(std::_Any_data&, main::$_11&&) (functional:1926) | |
==7472== by 0x44DAB5: std::function<void ()>::function<main::$_11, void>(main::$_11) (functional:2426) | |
==7472== by 0x44D9E1: void DispatcherPool::Dispatch<main::$_11>(main::$_11&&) (test.cpp:342) | |
==7472== by 0x44D168: main (test.cpp:708) | |
==7472== Block was alloc'd by thread #1 | |
==7472== | |
==7472== ---------------------------------------------------------------- | |
==7472== | |
==7472== Possible data race during read of size 8 at 0x5C57670 by thread #3 | |
==7472== Locks held: none | |
==7472== at 0x44DFA8: main::$_11::operator()() const (test.cpp:714) | |
==7472== by 0x44DC4C: std::_Function_handler<void (), main::$_11>::_M_invoke(std::_Any_data const&) (functional:2039) | |
==7472== by 0x45D6BD: std::function<void ()>::operator()() const (functional:2439) | |
==7472== by 0x473503: DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}::operator()() const (test.cpp:307) | |
==7472== by 0x4733D4: void std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1699) | |
==7472== by 0x4733A4: std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::operator()() (functional:1688) | |
==7472== by 0x47337B: std::thread::_Impl<std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115) | |
==7472== by 0x5116E2F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== by 0x4C31FD6: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x4E456A9: start_thread (pthread_create.c:333) | |
==7472== by 0x598FEEC: clone (clone.S:109) | |
==7472== Address 0x5c57670 is 0 bytes inside a block of size 32 alloc'd | |
==7472== at 0x4C2D520: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x44E581: std::_Function_base::_Base_manager<main::$_11>::_M_init_functor(std::_Any_data&, main::$_11&&, std::integral_constant<bool, false>) (functional:1955) | |
==7472== by 0x44DC0F: std::_Function_base::_Base_manager<main::$_11>::_M_init_functor(std::_Any_data&, main::$_11&&) (functional:1926) | |
==7472== by 0x44DAB5: std::function<void ()>::function<main::$_11, void>(main::$_11) (functional:2426) | |
==7472== by 0x44D9E1: void DispatcherPool::Dispatch<main::$_11>(main::$_11&&) (test.cpp:342) | |
==7472== by 0x44D168: main (test.cpp:708) | |
==7472== Block was alloc'd by thread #1 | |
==7472== | |
==7472== ---------------------------------------------------------------- | |
==7472== | |
==7472== Possible data race during read of size 8 at 0x5C57678 by thread #3 | |
==7472== Locks held: none | |
==7472== at 0x44DFB2: main::$_11::operator()() const (test.cpp:714) | |
==7472== by 0x44DC4C: std::_Function_handler<void (), main::$_11>::_M_invoke(std::_Any_data const&) (functional:2039) | |
==7472== by 0x45D6BD: std::function<void ()>::operator()() const (functional:2439) | |
==7472== by 0x473503: DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}::operator()() const (test.cpp:307) | |
==7472== by 0x4733D4: void std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1699) | |
==7472== by 0x4733A4: std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::operator()() (functional:1688) | |
==7472== by 0x47337B: std::thread::_Impl<std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115) | |
==7472== by 0x5116E2F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== by 0x4C31FD6: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x4E456A9: start_thread (pthread_create.c:333) | |
==7472== by 0x598FEEC: clone (clone.S:109) | |
==7472== Address 0x5c57678 is 8 bytes inside a block of size 32 alloc'd | |
==7472== at 0x4C2D520: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x44E581: std::_Function_base::_Base_manager<main::$_11>::_M_init_functor(std::_Any_data&, main::$_11&&, std::integral_constant<bool, false>) (functional:1955) | |
==7472== by 0x44DC0F: std::_Function_base::_Base_manager<main::$_11>::_M_init_functor(std::_Any_data&, main::$_11&&) (functional:1926) | |
==7472== by 0x44DAB5: std::function<void ()>::function<main::$_11, void>(main::$_11) (functional:2426) | |
==7472== by 0x44D9E1: void DispatcherPool::Dispatch<main::$_11>(main::$_11&&) (test.cpp:342) | |
==7472== by 0x44D168: main (test.cpp:708) | |
==7472== Block was alloc'd by thread #1 | |
==7472== | |
==7472== ---Thread-Announcement------------------------------------------ | |
==7472== | |
==7472== Thread #2 was created | |
==7472== at 0x598FEAE: clone (clone.S:74) | |
==7472== by 0x4E44179: create_thread (createthread.c:102) | |
==7472== by 0x4E45E20: pthread_create@@GLIBC_2.2.5 (pthread_create.c:677) | |
==7472== by 0x4C31E3D: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x5116F68: std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== by 0x472355: std::thread::thread<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}>(DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}&&) (thread:138) | |
==7472== by 0x4722C5: void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}>(std::thread*, DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}&&) (new_allocator.h:120) | |
==7472== by 0x47226C: _ZNSt16allocator_traitsISaISt6threadEE12_S_constructIS0_JZN14DispatcherPoolC1EjEUlvE_EEENSt9enable_ifIXsr6__and_INS2_18__construct_helperIT_JDpT0_EE4typeEEE5valueEvE4typeERS1_PS8_DpOS9_ (alloc_traits.h:253) | |
==7472== by 0x4717FF: _ZNSt16allocator_traitsISaISt6threadEE9constructIS0_JZN14DispatcherPoolC1EjEUlvE_EEEDTcl12_S_constructfp_fp0_spclsr3stdE7forwardIT0_Efp1_EEERS1_PT_DpOS6_ (alloc_traits.h:399) | |
==7472== by 0x4718A9: void std::vector<std::thread, std::allocator<std::thread> >::_M_emplace_back_aux<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}>(DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}&&) (vector.tcc:416) | |
==7472== by 0x4717AF: void std::vector<std::thread, std::allocator<std::thread> >::emplace_back<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}>(DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}&&) (vector.tcc:101) | |
==7472== by 0x453953: DispatcherPool::DispatcherPool(unsigned int) (test.cpp:295) | |
==7472== | |
==7472== ---------------------------------------------------------------- | |
==7472== | |
==7472== Possible data race during write of size 8 at 0x5C570D0 by thread #3 | |
==7472== Locks held: none | |
==7472== at 0x4573DA: store (atomic_base.h:478) | |
==7472== by 0x4573DA: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:2377) | |
==7472== by 0x455634: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::inner_enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:1217) | |
==7472== by 0x45400F: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::enqueue(std::function<void ()>&&) (concurrentqueue.h:853) | |
==7472== by 0x44E128: void DispatcherPool::Dispatch<main::$_11::operator()() const::{lambda()#1}>(main::$_11::operator()() const::{lambda()#1}&&) (test.cpp:342) | |
==7472== by 0x44DFC8: main::$_11::operator()() const (test.cpp:714) | |
==7472== by 0x44DC4C: std::_Function_handler<void (), main::$_11>::_M_invoke(std::_Any_data const&) (functional:2039) | |
==7472== by 0x45D6BD: std::function<void ()>::operator()() const (functional:2439) | |
==7472== by 0x473503: DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}::operator()() const (test.cpp:307) | |
==7472== by 0x4733D4: void std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1699) | |
==7472== by 0x4733A4: std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::operator()() (functional:1688) | |
==7472== by 0x47337B: std::thread::_Impl<std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115) | |
==7472== by 0x5116E2F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== | |
==7472== This conflicts with a previous read of size 8 by thread #2 | |
==7472== Locks held: none | |
==7472== at 0x474DF7: load (atomic_base.h:500) | |
==7472== by 0x474DF7: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:2385) | |
==7472== by 0x4742AB: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ProducerBase::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:1560) | |
==7472== by 0x473A5A: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::try_dequeue<std::function<void ()> >(moodycamel::ConsumerToken&, std::function<void ()>&) (concurrentqueue.h:1043) | |
==7472== by 0x473481: DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}::operator()() const (test.cpp:303) | |
==7472== by 0x4733D4: void std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1699) | |
==7472== by 0x4733A4: std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::operator()() (functional:1688) | |
==7472== by 0x47337B: std::thread::_Impl<std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115) | |
==7472== by 0x5116E2F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== Address 0x5c570d0 is 32 bytes inside a block of size 104 alloc'd | |
==7472== at 0x4C2CFC0: malloc (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x458E34: moodycamel::ConcurrentQueueDefaultTraits::malloc(unsigned long) (concurrentqueue.h:261) | |
==7472== by 0x45A7FD: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer* moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::create<moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer, moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>*>(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>*&&) (concurrentqueue.h:3435) | |
==7472== by 0x45A1B0: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::recycle_or_create_producer(bool, bool&) (concurrentqueue.h:3062) | |
==7472== by 0x456636: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::get_or_add_implicit_producer() (concurrentqueue.h:3308) | |
==7472== by 0x4555F8: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::inner_enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:1216) | |
==7472== by 0x45400F: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::enqueue(std::function<void ()>&&) (concurrentqueue.h:853) | |
==7472== by 0x44E128: void DispatcherPool::Dispatch<main::$_11::operator()() const::{lambda()#1}>(main::$_11::operator()() const::{lambda()#1}&&) (test.cpp:342) | |
==7472== by 0x44DFC8: main::$_11::operator()() const (test.cpp:714) | |
==7472== by 0x44DC4C: std::_Function_handler<void (), main::$_11>::_M_invoke(std::_Any_data const&) (functional:2039) | |
==7472== by 0x45D6BD: std::function<void ()>::operator()() const (functional:2439) | |
==7472== by 0x473503: DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}::operator()() const (test.cpp:307) | |
==7472== Block was alloc'd by thread #3 | |
==7472== | |
==7472== ---------------------------------------------------------------- | |
==7472== | |
==7472== Possible data race during read of size 8 at 0x5C55130 by thread #3 | |
==7472== Locks held: none | |
==7472== at 0x454230: std::_Function_base::~_Function_base() (functional:1997) | |
==7472== by 0x453CD4: std::function<void ()>::~function() (functional:1834) | |
==7472== by 0x47574D: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::dequeue<std::function<void ()> >(std::function<void ()>&)::Guard::~Guard() (concurrentqueue.h:2417) | |
==7472== by 0x47549C: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:2426) | |
==7472== by 0x4742AB: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ProducerBase::dequeue<std::function<void ()> >(std::function<void ()>&) (concurrentqueue.h:1560) | |
==7472== by 0x473A5A: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::try_dequeue<std::function<void ()> >(moodycamel::ConsumerToken&, std::function<void ()>&) (concurrentqueue.h:1043) | |
==7472== by 0x473481: DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1}::operator()() const (test.cpp:303) | |
==7472== by 0x4733D4: void std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1699) | |
==7472== by 0x4733A4: std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()>::operator()() (functional:1688) | |
==7472== by 0x47337B: std::thread::_Impl<std::_Bind_simple<DispatcherPool::DispatcherPool(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115) | |
==7472== by 0x5116E2F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== by 0x4C31FD6: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== | |
==7472== This conflicts with a previous write of size 8 by thread #1 | |
==7472== Locks held: none | |
==7472== at 0x45420C: std::_Function_base::_Function_base() (functional:1993) | |
==7472== by 0x4581AF: std::function<void ()>::function(std::function<void ()>&&) (functional:2202) | |
==7472== by 0x45731D: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ImplicitProducer::enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:2375) | |
==7472== by 0x455634: bool moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::inner_enqueue<(moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::AllocationMode)0, std::function<void ()> >(std::function<void ()>&&) (concurrentqueue.h:1217) | |
==7472== by 0x45400F: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::enqueue(std::function<void ()>&&) (concurrentqueue.h:853) | |
==7472== by 0x44D9F1: void DispatcherPool::Dispatch<main::$_11>(main::$_11&&) (test.cpp:342) | |
==7472== by 0x44D168: main (test.cpp:708) | |
==7472== Address 0x5c55130 is 608 bytes inside a block of size 6,576 alloc'd | |
==7472== at 0x4C2CFC0: malloc (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x458E34: moodycamel::ConcurrentQueueDefaultTraits::malloc(unsigned long) (concurrentqueue.h:261) | |
==7472== by 0x4763CD: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::Block* moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::create_array<moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::Block>(unsigned long) (concurrentqueue.h:3402) | |
==7472== by 0x476307: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::populate_initial_block_list(unsigned long) (concurrentqueue.h:2864) | |
==7472== by 0x47171B: moodycamel::ConcurrentQueue<std::function<void ()>, moodycamel::ConcurrentQueueDefaultTraits>::ConcurrentQueue(unsigned long) (concurrentqueue.h:666) | |
==7472== by 0x453921: DispatcherPool::DispatcherPool(unsigned int) (test.cpp:292) | |
==7472== by 0x4539E3: DispatcherPool::DispatcherPool() (test.cpp:289) | |
==7472== by 0x44D002: main (test.cpp:689) | |
==7472== Block was alloc'd by thread #1 | |
==7472== | |
==7472== ---------------------------------------------------------------- | |
==7472== | |
==7472== Thread #1: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread | |
==7472== at 0x4C30295: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x5112D58: std::condition_variable::notify_all() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== by 0x4712CD: DispatcherPool::_Shutdown(DispatcherPool::TerminationMode) (test.cpp:360) | |
==7472== by 0x453BA9: DispatcherPool::Await() (test.cpp:354) | |
==7472== by 0x44D3E4: main (test.cpp:730) | |
==7472== | |
==7472== ---------------------------------------------------------------- | |
==7472== | |
==7472== Thread #1: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread | |
==7472== at 0x4C30295: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) | |
==7472== by 0x5112D58: std::condition_variable::notify_all() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20) | |
==7472== by 0x4712CD: DispatcherPool::_Shutdown(DispatcherPool::TerminationMode) (test.cpp:360) | |
==7472== by 0x470C09: DispatcherPool::Shutdown() (test.cpp:349) | |
==7472== by 0x453BE7: DispatcherPool::~DispatcherPool() (test.cpp:336) | |
==7472== by 0x44D487: main (test.cpp:735) | |
==7472== | |
==7472== | |
==7472== For counts of detected and suppressed errors, rerun with: -v | |
==7472== Use --history-level=approx or =none to gain increased speed, at | |
==7472== the cost of reduced accuracy of conflicting-access information | |
==7472== ERROR SUMMARY: 295 errors from 19 contexts (suppressed: 343 from 49) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment