27 #include <AceCommon.h>
31 namespace ace_routine {
37 return elapsedMillis >= mDelayDuration;
41 return elapsedMicros >= mDelayDuration;
45 return elapsedSeconds >= mDelayDuration;
54 mName = ace_common::FCString(name);
60 mName = ace_common::FCString(name);
66 mName = ace_common::FCString(name);
72 mName = ace_common::FCString(name);
84 void Coroutine::insertSorted() {
88 while (*p !=
nullptr) {
89 if (
getName().compareTo((*p)->getName()) <= 0)
break;
97 void Coroutine::insertAtRoot() {
123 unsigned long m = ::millis();
124 #if defined(ARDUINO_ARCH_AVR) || defined(ARDUINO_ARCH_SAMD) || defined(ESP8266)
126 return ace_common::udiv1000(m);
138 static const char kStatusSuspendedString[] PROGMEM =
"Suspended";
139 static const char kStatusYieldingString[] PROGMEM =
"Yielding";
140 static const char kStatusDelayingString[] PROGMEM =
"Delaying";
141 static const char kStatusRunningString[] PROGMEM =
"Running";
142 static const char kStatusEndingString[] PROGMEM =
"Ending";
143 static const char kStatusTerminatedString[] PROGMEM =
"Terminated";
145 const __FlashStringHelper*
const Coroutine::sStatusStrings[] = {
146 FPSTR(kStatusSuspendedString),
147 FPSTR(kStatusYieldingString),
148 FPSTR(kStatusDelayingString),
149 FPSTR(kStatusRunningString),
150 FPSTR(kStatusEndingString),
151 FPSTR(kStatusTerminatedString),