1 // Copyright 2013 The Flutter Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "task_observers.h" 6 7 #include <map> 8 9 namespace flutter_runner { 10 11 thread_local std::map<intptr_t, fit::closure> tTaskObservers; 12 ExecuteAfterTaskObservers()13void ExecuteAfterTaskObservers() { 14 for (const auto& callback : tTaskObservers) { 15 callback.second(); 16 } 17 } 18 CurrentMessageLoopAddAfterTaskObserver(intptr_t key,fit::closure observer)19void CurrentMessageLoopAddAfterTaskObserver(intptr_t key, 20 fit::closure observer) { 21 if (observer) { 22 tTaskObservers[key] = std::move(observer); 23 } 24 } 25 CurrentMessageLoopRemoveAfterTaskObserver(intptr_t key)26void CurrentMessageLoopRemoveAfterTaskObserver(intptr_t key) { 27 tTaskObservers.erase(key); 28 } 29 30 } // namespace flutter_runner 31