MCPcopy Create free account
hub / github.com/SakuraEngine/SakuraEngine / schedule

Function schedule

modules/core/task/include/SkrTask/fib_task.hpp:117–130  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

115 void unbind();
116 template<typename F>
117 void schedule(F&& lambda, event_t* event, const char* name = nullptr)
118 {
119 auto f = SkrNewLambda(std::forward<F>(lambda));
120 using f_t = decltype(f);
121 auto t = +[](ftl::TaskScheduler* taskScheduler, void* data)
122 {
123 auto f = (f_t)data;
124 SKR_DEFER({SkrDelete(f);});
125 f->operator()();
126 };
127 ftl::Task task{t, f};
128 internal->AddTask(task, ftl::TaskPriority::Normal, event ? event->internal : nullptr FTL_TASK_NAME(, name));
129 if(event) event->internal->Decrement();
130 }
131
132 template<typename F>
133 void wait(bool pin, F&& lambda)

Callers

nothing calls this directly

Calls 5

SkrNewLambdaFunction · 0.85
SkrDeleteFunction · 0.85
scheduleMethod · 0.80
signalMethod · 0.80
operator()Method · 0.45

Tested by

no test coverage detected