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