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

Function watchdog_signal_handler

tests/timeout_watchdog.h:191–224  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

189static fl::thread::id g_main_thread_id;
190
191inline void watchdog_signal_handler(int sig) {
192 (void)sig; // Unused
193
194 if (!g_watchdog_active.load()) {
195 return;
196 }
197
198 // Timeout occurred!
199 g_watchdog_triggered.store(true);
200
201 fprintf(stderr, "\n");
202 fprintf(stderr, "================================================================================\n");
203 fprintf(stderr, "INTERNAL TIMEOUT WATCHDOG TRIGGERED\n");
204 fprintf(stderr, "================================================================================\n");
205 fprintf(stderr, "Test exceeded internal timeout of %.1f seconds\n", g_timeout_seconds);
206 fprintf(stderr, "Dumping main thread stack trace...\n");
207 fprintf(stderr, "================================================================================\n");
208 fprintf(stderr, "\n");
209 fflush(stderr);
210
211 // Dump stack trace
212 print_stacktrace();
213
214 fprintf(stderr, "\n");
215 fprintf(stderr, "================================================================================\n");
216 fprintf(stderr, "END TIMEOUT WATCHDOG\n");
217 fprintf(stderr, "Exiting with code 1\n");
218 fprintf(stderr, "================================================================================\n");
219 fprintf(stderr, "\n");
220 fflush(stderr);
221
222 // Exit with code 1
223 _exit(1);
224}
225
226inline void setup(double timeout_seconds = 20.0) {
227 // Check if watchdog should be disabled

Callers

nothing calls this directly

Calls 4

fflushFunction · 0.85
print_stacktraceFunction · 0.70
loadMethod · 0.45
storeMethod · 0.45

Tested by

no test coverage detected