From 14bc94ece51affb7cb6d52a491b97921ed420587 Mon Sep 17 00:00:00 2001 From: Thulinma Date: Tue, 12 Jul 2022 15:47:29 +0200 Subject: [PATCH] Prevent eternal sleep when waiting for RelAccX structure to become ready --- lib/util.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/util.cpp b/lib/util.cpp index d522a151..8dd75727 100644 --- a/lib/util.cpp +++ b/lib/util.cpp @@ -446,7 +446,15 @@ namespace Util{ hdrOffset = (uint16_t*)(p+26); hdrEndPos = (uint64_t*)(p+28); if (waitReady){ - while (!isReady()){Util::sleep(50);} + uint64_t maxWait = Util::bootMS() + 10000; + while (!isReady()){ + if (Util::bootMS() > maxWait){ + FAIL_MSG("Waiting for RelAccX structure to be ready timed out, aborting"); + p = 0; + return; + } + Util::sleep(50); + } } if (isReady()){ uint16_t offset = RAXHDR_FIELDOFFSET;