40 lines
807 B
Plaintext
40 lines
807 B
Plaintext
|
#include "REAIOSScheduler.h"
|
||
|
#include "RuntimeManager.h"
|
||
|
|
||
|
namespace reanimated {
|
||
|
|
||
|
using namespace facebook;
|
||
|
using namespace react;
|
||
|
|
||
|
REAIOSScheduler::REAIOSScheduler(std::shared_ptr<CallInvoker> jsInvoker) {
|
||
|
this->jsCallInvoker_ = jsInvoker;
|
||
|
}
|
||
|
|
||
|
void REAIOSScheduler::scheduleOnUI(std::function<void()> job) {
|
||
|
if (runtimeManager.lock() == nullptr) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if([NSThread isMainThread]) {
|
||
|
if (runtimeManager.lock()) job();
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
Scheduler::scheduleOnUI(job);
|
||
|
if([NSThread isMainThread]) {
|
||
|
if (runtimeManager.lock()) triggerUI();
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
__block std::weak_ptr<RuntimeManager> blockRuntimeManager = runtimeManager;
|
||
|
|
||
|
dispatch_async(dispatch_get_main_queue(), ^{
|
||
|
if (blockRuntimeManager.lock()) triggerUI();
|
||
|
});
|
||
|
}
|
||
|
|
||
|
REAIOSScheduler::~REAIOSScheduler(){
|
||
|
}
|
||
|
|
||
|
}
|