Repository: flutter
Issue: Data race on animator begin frame when the engine is shutting down.
Labels: engine,from: sanitizer,P2,team-engine,triaged-engine

Caught by thread sanitizer in `embedder_unittest` on shell shutdown.
```
WARNING: ThreadSanitizer: data race (pid=57738)
  Write of size 8 at 0x7b6c0002eb58 by thread T13 (mutexes: write M396035296755253640):
    #0 std::__1::unique_ptr<flutter::Engine, std::__1::default_delete<flutter::Engine> >::release() memory:2629 (embedder_unittests:x86_64+0x10211cc16)
    #1 std::__1::unique_ptr<flutter::Engine, std::__1::default_delete<flutter::Engine> >::unique_ptr(std::__1::unique_ptr<flutter::Engine, std::__1::default_delete<flutter::Engine> >&&) memory:2481 (embedder_unittests:x86_64+0x10211cb4d)
    #2 std::__1::unique_ptr<flutter::Engine, std::__1::default_delete<flutter::Engine> >::unique_ptr(std::__1::unique_ptr<flutter::Engine, std::__1::default_delete<flutter::Engine> >&&) memory:2481 (embedder_unittests:x86_64+0x1020d8cf6)
    #3 flutter::Shell::~Shell() shell.cc:324 (embedder_unittests:x86_64+0x1020d8719)
    #4 flutter::Shell::~Shell() shell.cc:314 (embedder_unittests:x86_64+0x1020d9726)
    #5 std::__1::default_delete<flutter::Shell>::operator()(flutter::Shell*) const memory:2325 (embedder_unittests:x86_64+0x100226d94)
    #6 std::__1::unique_ptr<flutter::Shell, std::__1::default_delete<flutter::Shell> >::reset(flutter::Shell*) memory:2638 (embedder_unittests:x86_64+0x100226c2b)
    #7 std::__1::unique_ptr<flutter::Shell, std::__1::default_delete<flutter::Shell> >::~unique_ptr() memory:2592 (embedder_unittests:x86_64+0x100226b4a)
    #8 std::__1::unique_ptr<flutter::Shell, std::__1::default_delete<flutter::Shell> >::~unique_ptr() memory:2592 (embedder_unittests:x86_64+0x100225056)
    #9 flutter::EmbedderEngine::~EmbedderEngine() embedder_engine.cc:34 (embedder_unittests:x86_64+0x100224fd4)
    #10 flutter::EmbedderEngine::~EmbedderEngine() embedder_engine.cc:34 (embedder_unittests:x86_64+0x1002250b6)
    #11 FlutterEngineShutdown embedder.cc:907 (embedder_unittests:x86_64+0x10019b594)
    #12 flutter::testing::UniqueEngineTraits::Free(_FlutterEngine*&) embedder_config_builder.h:24 (embedder_unittests:x86_64+0x10001e101)
    #13 fml::UniqueObject<_FlutterEngine*, flutter::testing::UniqueEngineTraits>::FreeIfNecessary() unique_object.h:101 (embedder_unittests:x86_64+0x10001e016)
    #14 fml::UniqueObject<_FlutterEngine*, flutter::testing::UniqueEngineTraits>::reset(_FlutterEngine* const&) unique_object.h:65 (embedder_unittests:x86_64+0x100077c89)
    #15 flutter::testing::EmbedderTest_CanSpecifyCustomTaskRunner_Test::TestBody()::$_0::operator()() embedder_unittests.cc:218 (embedder_unittests:x86_64+0x1000ee7bc)
    #16 auto fml::internal::CopyableLambda<flutter::testing::EmbedderTest_CanSpecifyCustomTaskRunner_Test::TestBody()::$_0>::operator()<>() const make_copyable.h:24 (embedder_unittests:x86_64+0x1000ee5d2)
    #17 decltype(std::__1::forward<fml::internal::CopyableLambda<flutter::testing::EmbedderTest_CanSpecifyCustomTaskRunner_Test::TestBody()::$_0>&>(fp)()) std::__1::__invoke<fml::internal::CopyableLambda<flutter::testing::EmbedderTest_CanSpecifyCustomTaskRunner_Test::TestBody()::$_0>&>(fml::internal::CopyableLambda<flutter::testing::EmbedderTest_CanSpecifyCustomTaskRunner_Test::TestBody()::$_0>&&&) type_traits:4350 (embedder_unittests:x86_64+0x1000ee4ee)
    #18 void std::__1::__invoke_void_return_wrapper<void>::__call<fml::internal::CopyableLambda<flutter::testing::EmbedderTest_CanSpecifyCustomTaskRunner_Test::TestBody()::$_0>&>(fml::internal::CopyableLambda<flutter::testing::EmbedderTest_CanSpecifyCustomTaskRunner_Test::TestBody()::$_0>&&&) __functional_base:349 (embedder_unittests:x86_64+0x1000ee40e)
    #19 std::__1::__function::__func<fml::internal::CopyableLambda<flutter::testing::EmbedderTest_CanSpecifyCustomTaskRunner_Test::TestBody()::$_0>, std::__1::allocator<fml::internal::CopyableLambda<flutter::testing::EmbedderTest_CanSpecifyCustomTaskRunner_Test::TestBody()::$_0> >, void ()>::operator()() functional:1572 (embedder_unittests:x86_64+0x1000eb642)
    #20 std::__1::function<void ()>::operator()() const functional:1923 (embedder_unittests:x86_64+0x10005c52c)
    #21 fml::MessageLoopImpl::FlushTasks(fml::FlushType) message_loop_impl.cc:121 (embedder_unittests:x86_64+0x100e732ea)
    #22 fml::MessageLoopImpl::RunExpiredTasksNow() message_loop_impl.cc:131 (embedder_unittests:x86_64+0x100e730db)
    #23 fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*) message_loop_darwin.mm:75 (embedder_unittests:x86_64+0x100ea412b)
    #24 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ <null>:2125280 (CoreFoundation:x86_64h+0x5a05f)
    #25 fml::MessageLoopImpl::DoRun() message_loop_impl.cc:90 (embedder_unittests:x86_64+0x100e72f87)
    #26 fml::MessageLoop::Run() message_loop.cc:49 (embedder_unittests:x86_64+0x100e712ce)
    #27 fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0::operator()() const thread.cc:34 (embedder_unittests:x86_64+0x100e9ce1e)
    #28 decltype(std::__1::forward<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fp)()) std::__1::__invoke<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0&&) type_traits:4350 (embedder_unittests:x86_64+0x100e9cc5e)
    #29 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>&, std::__1::__tuple_indices<>) thread:342 (embedder_unittests:x86_64+0x100e9cb16)
    #30 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0> >(void*) thread:352 (embedder_unittests:x86_64+0x100e9c1e4)

  Previous read of size 8 at 0x7b6c0002eb58 by thread T14:
    #0 std::__1::unique_ptr<flutter::Engine, std::__1::default_delete<flutter::Engine> >::operator bool() const memory:2623 (embedder_unittests:x86_64+0x1020da782)
    #1 flutter::Shell::OnAnimatorBeginFrame(fml::TimePoint) shell.cc:861 (embedder_unittests:x86_64+0x1020df958)
    #2 non-virtual thunk to flutter::Shell::OnAnimatorBeginFrame(fml::TimePoint) shell.cc (embedder_unittests:x86_64+0x1020dfa3a)
    #3 flutter::Animator::BeginFrame(fml::TimePoint, fml::TimePoint) animator.cc:140 (embedder_unittests:x86_64+0x10204f655)
    #4 flutter::Animator::AwaitVSync()::$_3::operator()(fml::TimePoint, fml::TimePoint) const animator.cc:239 (embedder_unittests:x86_64+0x10207a666)
    #5 decltype(std::__1::forward<flutter::Animator::AwaitVSync()::$_3&>(fp)(std::__1::forward<fml::TimePoint>(fp0), std::__1::forward<fml::TimePoint>(fp0))) std::__1::__invoke<flutter::Animator::AwaitVSync()::$_3&, fml::TimePoint, fml::TimePoint>(flutter::Animator::AwaitVSync()::$_3&&&, fml::TimePoint&&, fml::TimePoint&&) type_traits:4350 (embedder_unittests:x86_64+0x10207a4e5)
    #6 void std::__1::__invoke_void_return_wrapper<void>::__call<flutter::Animator::AwaitVSync()::$_3&, fml::TimePoint, fml::TimePoint>(flutter::Animator::AwaitVSync()::$_3&&&, fml::TimePoint&&, fml::TimePoint&&) __functional_base:349 (embedder_unittests:x86_64+0x10207a398)
    #7 std::__1::__function::__func<flutter::Animator::AwaitVSync()::$_3, std::__1::allocator<flutter::Animator::AwaitVSync()::$_3>, void (fml::TimePoint, fml::TimePoint)>::operator()(fml::TimePoint&&, fml::TimePoint&&) functional:1572 (embedder_unittests:x86_64+0x10207773c)
    #8 std::__1::function<void (fml::TimePoint, fml::TimePoint)>::operator()(fml::TimePoint, fml::TimePoint) const functional:1923 (embedder_unittests:x86_64+0x1021ca39a)
    #9 flutter::VsyncWaiter::FireCallback(fml::TimePoint, fml::TimePoint)::$_0::operator()() const vsync_waiter.cc:122 (embedder_unittests:x86_64+0x1021ca0f5)
    #10 decltype(std::__1::forward<flutter::VsyncWaiter::FireCallback(fml::TimePoint, fml::TimePoint)::$_0&>(fp)()) std::__1::__invoke<flutter::VsyncWaiter::FireCallback(fml::TimePoint, fml::TimePoint)::$_0&>(flutter::VsyncWaiter::FireCallback(fml::TimePoint, fml::TimePoint)::$_0&&&) type_traits:4350 (embedder_unittests:x86_64+0x1021c9f0e)
    #11 void std::__1::__invoke_void_return_wrapper<void>::__call<flutter::VsyncWaiter::FireCallback(fml::TimePoint, fml::TimePoint)::$_0&>(flutter::VsyncWaiter::FireCallback(fml::TimePoint, fml::TimePoint)::$_0&&&) __functional_base:349 (embedder_unittests:x86_64+0x1021c9e2e)
    #12 std::__1::__function::__func<flutter::VsyncWaiter::FireCallback(fml::TimePoint, fml::TimePoint)::$_0, std::__1::allocator<flutter::VsyncWaiter::FireCallback(fml::TimePoint, fml::TimePoint)::$_0>, void ()>::operator()() functional:1572 (embedder_unittests:x86_64+0x1021c7032)
    #13 std::__1::function<void ()>::operator()() const functional:1923 (embedder_unittests:x86_64+0x10005c52c)
    #14 fml::MessageLoopImpl::FlushTasks(fml::FlushType) message_loop_impl.cc:121 (embedder_unittests:x86_64+0x100e732ea)
    #15 fml::MessageLoopImpl::RunExpiredTasksNow() message_loop_impl.cc:131 (embedder_unittests:x86_64+0x100e730db)
    #16 fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*) message_loop_darwin.mm:75 (embedder_unittests:x86_64+0x100ea412b)
    #17 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ <null>:2125280 (CoreFoundation:x86_64h+0x5a05f)
    #18 fml::MessageLoopImpl::DoRun() message_loop_impl.cc:90 (embedder_unittests:x86_64+0x100e72f87)
    #19 fml::MessageLoop::Run() message_loop.cc:49 (embedder_unittests:x86_64+0x100e712ce)
    #20 fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0::operator()() const thread.cc:34 (embedder_unittests:x86_64+0x100e9ce1e)
    #21 decltype(std::__1::forward<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fp)()) std::__1::__invoke<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0&&) type_traits:4350 (embedder_unittests:x86_64+0x100e9cc5e)
    #22 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>&, std::__1::__tuple_indices<>) thread:342 (embedder_unittests:x86_64+0x100e9cb16)
    #23 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0> >(void*) thread:352 (embedder_unittests:x86_64+0x100e9c1e4)
```

The same issue also happens on the idle notification:

```
WARNING: ThreadSanitizer: data race (pid=57967)
  Write of size 8 at 0x7b6c0000fa58 by main thread:
    #0 std::__1::unique_ptr<flutter::Engine, std::__1::default_delete<flutter::Engine> >::release() memory:2629 (embedder_unittests:x86_64+0x10211cc16)
    #1 std::__1::unique_ptr<flutter::Engine, std::__1::default_delete<flutter::Engine> >::unique_ptr(std::__1::unique_ptr<flutter::Engine, std::__1::default_delete<flutter::Engine> >&&) memory:2481 (embedder_unittests:x86_64+0x10211cb4d)
    #2 std::__1::unique_ptr<flutter::Engine, std::__1::default_delete<flutter::Engine> >::unique_ptr(std::__1::unique_ptr<flutter::Engine, std::__1::default_delete<flutter::Engine> >&&) memory:2481 (embedder_unittests:x86_64+0x1020d8cf6)
    #3 flutter::Shell::~Shell() shell.cc:324 (embedder_unittests:x86_64+0x1020d8719)
    #4 flutter::Shell::~Shell() shell.cc:314 (embedder_unittests:x86_64+0x1020d9726)
    #5 std::__1::default_delete<flutter::Shell>::operator()(flutter::Shell*) const memory:2325 (embedder_unittests:x86_64+0x100226d94)
    #6 std::__1::unique_ptr<flutter::Shell, std::__1::default_delete<flutter::Shell> >::reset(flutter::Shell*) memory:2638 (embedder_unittests:x86_64+0x100226c2b)
    #7 std::__1::unique_ptr<flutter::Shell, std::__1::default_delete<flutter::Shell> >::~unique_ptr() memory:2592 (embedder_unittests:x86_64+0x100226b4a)
    #8 std::__1::unique_ptr<flutter::Shell, std::__1::default_delete<flutter::Shell> >::~unique_ptr() memory:2592 (embedder_unittests:x86_64+0x100225056)
    #9 flutter::EmbedderEngine::~EmbedderEngine() embedder_engine.cc:34 (embedder_unittests:x86_64+0x100224fd4)
    #10 flutter::EmbedderEngine::~EmbedderEngine() embedder_engine.cc:34 (embedder_unittests:x86_64+0x1002250b6)
    #11 FlutterEngineShutdown embedder.cc:907 (embedder_unittests:x86_64+0x10019b594)
    #12 flutter::testing::UniqueEngineTraits::Free(_FlutterEngine*&) embedder_config_builder.h:24 (embedder_unittests:x86_64+0x10001e101)
    #13 fml::UniqueObject<_FlutterEngine*, flutter::testing::UniqueEngineTraits>::FreeIfNecessary() unique_object.h:101 (embedder_unittests:x86_64+0x10001e016)
    #14 fml::UniqueObject<_FlutterEngine*, flutter::testing::UniqueEngineTraits>::reset(_FlutterEngine* const&) unique_object.h:65 (embedder_unittests:x86_64+0x100077c89)
    #15 flutter::testing::EmbedderTest_CanLaunchAndShutdownWithValidProjectArgs_Test::TestBody() embedder_unittests.cc:50 (embedder_unittests:x86_64+0x100077a43)
    #16 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2447 (embedder_unittests:x86_64+0x103211ea4)
    #17 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) gtest.cc:2502 (embedder_unittests:x86_64+0x1031d918e)
    #18 testing::Test::Run() gtest.cc:2522 (embedder_unittests:x86_64+0x1031d9057)
    #19 testing::TestInfo::Run() gtest.cc:2698 (embedder_unittests:x86_64+0x1031da2f9)
    #20 testing::TestSuite::Run() gtest.cc:2828 (embedder_unittests:x86_64+0x1031dba30)
    #21 testing::internal::UnitTestImpl::RunAllTests() gtest.cc:5285 (embedder_unittests:x86_64+0x1031e9d07)
    #22 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2447 (embedder_unittests:x86_64+0x10321b7f4)
    #23 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) gtest.cc:2502 (embedder_unittests:x86_64+0x1031e965e)
    #24 testing::UnitTest::Run() gtest.cc:4873 (embedder_unittests:x86_64+0x1031e9456)
    #25 RUN_ALL_TESTS() gtest.h:2453 (embedder_unittests:x86_64+0x10302b2cb)
    #26 main run_all_unittests.cc:9 (embedder_unittests:x86_64+0x10302b26b)

  Previous read of size 8 at 0x7b6c0000fa58 by thread T43:
    #0 std::__1::unique_ptr<flutter::Engine, std::__1::default_delete<flutter::Engine> >::operator bool() const memory:2623 (embedder_unittests:x86_64+0x1020da782)
    #1 flutter::Shell::OnAnimatorNotifyIdle(long long) shell.cc:871 (embedder_unittests:x86_64+0x1020dfc48)
    #2 non-virtual thunk to flutter::Shell::OnAnimatorNotifyIdle(long long) shell.cc (embedder_unittests:x86_64+0x1020dfcfa)
    #3 flutter::Animator::BeginFrame(fml::TimePoint, fml::TimePoint)::$_1::operator()() const animator.cc:164 (embedder_unittests:x86_64+0x1020718fb)
    #4 decltype(std::__1::forward<flutter::Animator::BeginFrame(fml::TimePoint, fml::TimePoint)::$_1&>(fp)()) std::__1::__invoke<flutter::Animator::BeginFrame(fml::TimePoint, fml::TimePoint)::$_1&>(flutter::Animator::BeginFrame(fml::TimePoint, fml::TimePoint)::$_1&&&) type_traits:4350 (embedder_unittests:x86_64+0x10207171e)
    #5 void std::__1::__invoke_void_return_wrapper<void>::__call<flutter::Animator::BeginFrame(fml::TimePoint, fml::TimePoint)::$_1&>(flutter::Animator::BeginFrame(fml::TimePoint, fml::TimePoint)::$_1&&&) __functional_base:349 (embedder_unittests:x86_64+0x10207163e)
    #6 std::__1::__function::__func<flutter::Animator::BeginFrame(fml::TimePoint, fml::TimePoint)::$_1, std::__1::allocator<flutter::Animator::BeginFrame(fml::TimePoint, fml::TimePoint)::$_1>, void ()>::operator()() functional:1572 (embedder_unittests:x86_64+0x10206ea42)
    #7 std::__1::function<void ()>::operator()() const functional:1923 (embedder_unittests:x86_64+0x10005c52c)
    #8 fml::MessageLoopImpl::FlushTasks(fml::FlushType) message_loop_impl.cc:121 (embedder_unittests:x86_64+0x100e732ea)
    #9 fml::MessageLoopImpl::RunExpiredTasksNow() message_loop_impl.cc:131 (embedder_unittests:x86_64+0x100e730db)
    #10 fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*) message_loop_darwin.mm:75 (embedder_unittests:x86_64+0x100ea412b)
    #11 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ <null> (CoreFoundation:x86_64h+0x5a05f)
    #12 fml::MessageLoopImpl::DoRun() message_loop_impl.cc:90 (embedder_unittests:x86_64+0x100e72f87)
    #13 fml::MessageLoop::Run() message_loop.cc:49 (embedder_unittests:x86_64+0x100e712ce)
    #14 fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0::operator()() const thread.cc:34 (embedder_unittests:x86_64+0x100e9ce1e)
    #15 decltype(std::__1::forward<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fp)()) std::__1::__invoke<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0&&) type_traits:4350 (embedder_unittests:x86_64+0x100e9cc5e)
    #16 void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>&, std::__1::__tuple_indices<>) thread:342 (embedder_unittests:x86_64+0x100e9cb16)
    #17 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0> >(void*) thread:352 (embedder_unittests:x86_64+0x100e9c1e4)

```