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