1*023bc8eaSKudo Chien #include "Scheduler.h" 2*023bc8eaSKudo Chien 3*023bc8eaSKudo Chien namespace reanimated { 4*023bc8eaSKudo Chien scheduleOnUI(std::function<void ()> job)5*023bc8eaSKudo Chienvoid Scheduler::scheduleOnUI(std::function<void()> job) { 6*023bc8eaSKudo Chien uiJobs.push(std::move(job)); 7*023bc8eaSKudo Chien } 8*023bc8eaSKudo Chien scheduleOnJS(std::function<void ()> job)9*023bc8eaSKudo Chienvoid Scheduler::scheduleOnJS(std::function<void()> job) { 10*023bc8eaSKudo Chien jsCallInvoker_->invokeAsync(std::move(job)); 11*023bc8eaSKudo Chien } 12*023bc8eaSKudo Chien triggerUI()13*023bc8eaSKudo Chienvoid Scheduler::triggerUI() { 14*023bc8eaSKudo Chien scheduledOnUI = false; 15*023bc8eaSKudo Chien while (uiJobs.getSize()) { 16*023bc8eaSKudo Chien auto job = uiJobs.pop(); 17*023bc8eaSKudo Chien job(); 18*023bc8eaSKudo Chien } 19*023bc8eaSKudo Chien } 20*023bc8eaSKudo Chien setJSCallInvoker(std::shared_ptr<facebook::react::CallInvoker> jsCallInvoker)21*023bc8eaSKudo Chienvoid Scheduler::setJSCallInvoker( 22*023bc8eaSKudo Chien std::shared_ptr<facebook::react::CallInvoker> jsCallInvoker) { 23*023bc8eaSKudo Chien jsCallInvoker_ = jsCallInvoker; 24*023bc8eaSKudo Chien } 25*023bc8eaSKudo Chien setRuntimeManager(std::shared_ptr<RuntimeManager> runtimeManager)26*023bc8eaSKudo Chienvoid Scheduler::setRuntimeManager( 27*023bc8eaSKudo Chien std::shared_ptr<RuntimeManager> runtimeManager) { 28*023bc8eaSKudo Chien this->runtimeManager = runtimeManager; 29*023bc8eaSKudo Chien } 30*023bc8eaSKudo Chien ~Scheduler()31*023bc8eaSKudo ChienScheduler::~Scheduler() {} 32*023bc8eaSKudo Chien Scheduler()33*023bc8eaSKudo ChienScheduler::Scheduler() { 34*023bc8eaSKudo Chien this->scheduledOnUI = false; 35*023bc8eaSKudo Chien } 36*023bc8eaSKudo Chien 37*023bc8eaSKudo Chien } // namespace reanimated 38