MCPcopy Create free account
hub / github.com/FastLED/FastLED / delayed_resolve

Function delayed_resolve

tests/fl/task/executor.cpp:612–625  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

610// Thread is registered via platform API for cleanup on exit
611template<typename T>
612fl::task::Promise<T> delayed_resolve(const T& value, uint32_t delay_ms) {
613 auto p = fl::task::Promise<T>::create();
614
615 fl::thread t([p, value, delay_ms]() mutable {
616 for (uint32_t elapsed = 0; elapsed < delay_ms && !fl::platforms::ICoroutineRuntime::instance().isShutdownRequested(); elapsed += 1) {
617 uint32_t sleep_time = fl::min(1u, delay_ms - elapsed);
618 fl::this_thread::sleep_for(fl::chrono::milliseconds(sleep_time)); // ok sleep for
619 }
620 p.complete_with_value(value);
621 });
622
623 fl::platforms::register_background_thread(fl::move(t));
624 return p;
625}
626
627// Helper: Create a promise that rejects after a delay
628template<typename T>

Callers

nothing calls this directly

Calls 4

createFunction · 0.85
isShutdownRequestedMethod · 0.80
complete_with_valueMethod · 0.80
sleep_forFunction · 0.50

Tested by

no test coverage detected