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(){
|
|
}
|
|
|
|
}
|