If you're fetching data from a remote source, "retry until a timeout is hit" is a pretty standard pattern. And with that in mind, this C++ code from Auburus doesn't look like much of a WTF.
bool receiveData(uint8_t** data, std::chrono::milliseconds timeToWait) {
start = now();
while ((now() - start) < timeToWait) {
if (/* successfully receive data */) {
return true;
}
std::this_thread::sleep_for(100ms);
}
return false;
}
Track the start time. While the difference between the current time and the start is less than our timeout, try and get the data. If you don't, sleep for 100ms, then retry.
This all seems pretty reasonable, at first glance. We could come up with better ways, certainly, but that code isn't quite a WTF.
This code is:
// The ONLY call to that function
receiveData(&dataPtr, 100ms);
By calling this with a 100ms
timeout, and because we hard-coded in a 100ms
sleep, we've guaranteed that we will never retry. That may or not be intentional, and that's what really bugs me about this code. Maybe they meant to do that (because they originally retried, and found it caused other bugs?). Maybe they didn't. But they didn't document it, either in the code or as a commit comment, so we'll never know.