Definition at line 13 of file driver.cpp.hpp.
13 {
14 const u32 startTime = timeoutMs > 0 ?
millis() : 0;
15
16
17 if (condition()) {
18 return true;
19 }
20
21
22
23
24 {
26 if (spinBudget > 0) {
28 while ((
fl::micros() - spinStart) < spinBudget) {
29 if (condition()) {
30 return true;
31 }
32 if (timeoutMs > 0 && (
millis() - startTime) >= timeoutMs) {
33 FL_ERROR(
"Timeout occurred while waiting for condition");
34 return false;
35 }
36 }
37 }
38 }
39
40 while (!condition()) {
41
42 if (timeoutMs > 0 && (
millis() - startTime >= timeoutMs)) {
43 FL_ERROR(
"Timeout occurred while waiting for condition");
44 return false;
45 }
46
47
48
49
50
52
54 } else {
55
57 }
58 }
59
60 return true;
61}
static bool isAnyNetworkActive() FL_NOEXCEPT
fl::u32 getWaitSpinBudgetUs() FL_NOEXCEPT
Get the current tiered-wait spin budget (microseconds).
void run(fl::u32 microseconds, ExecFlags flags)
Run selected task subsystems.
fl::u32 millis()
Universal millisecond timer - returns milliseconds since system startup.
fl::u32 micros()
Universal microsecond timer - returns microseconds since system startup.
References FL_ERROR, fl::detail::getWaitSpinBudgetUs(), fl::net::NetworkDetector::isAnyNetworkActive(), fl::micros(), fl::millis(), fl::task::run(), and fl::task::SYSTEM.
Referenced by operator=(), waitForReady(), and waitForReadyOrDraining().