Skip to content

Commit dc3db41

Browse files
committed
Revert _current as member change.
1 parent 21b6afa commit dc3db41

File tree

1 file changed

+12
-13
lines changed

1 file changed

+12
-13
lines changed

cores/esp8266/PolledTimeout.h

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -227,10 +227,11 @@ class timeoutTemplate
227227
timeType remaining() const
228228
{
229229
if (_neverExpires)
230-
return timeMax();
231-
if (expired())
232-
return TimePolicyT::toUserUnit(0);
233-
return TimePolicyT::toUserUnit(_timeout - (_current - _start));
230+
return timeMax();
231+
timeType current = TimePolicyT::time();
232+
if (checkExpired(current))
233+
return TimePolicyT::toUserUnit(0);
234+
return TimePolicyT::toUserUnit(_timeout - (current - _start));
234235
}
235236

236237
static constexpr timeType timeMax()
@@ -241,11 +242,11 @@ class timeoutTemplate
241242
private:
242243

243244
IRAM_ATTR // fast
244-
bool checkExpired() const
245+
bool checkExpired(const timeType internalUnit) const
245246
{
246247
// canWait() is not checked here
247248
// returns "can expire" and "time expired"
248-
return (!_neverExpires) && ((_current - _start) >= _timeout);
249+
return (!_neverExpires) && ((internalUnit - _start) >= _timeout);
249250
}
250251

251252
protected:
@@ -256,27 +257,25 @@ class timeoutTemplate
256257
if (!canWait())
257258
return true;
258259

259-
_current = TimePolicyT::time();
260-
if(checkExpired())
260+
timeType current = TimePolicyT::time();
261+
if(checkExpired(current))
261262
{
262-
unsigned long n = (_current - _start) / _timeout; //how many _timeouts periods have elapsed, will usually be 1 (_current - _start >= _timeout)
263+
unsigned long n = (current - _start) / _timeout; //how many _timeouts periods have elapsed, will usually be 1 (current - _start >= _timeout)
263264
_start += n * _timeout;
264265
return true;
265266
}
266267
return false;
267268
}
268269

269270
IRAM_ATTR // fast
270-
bool expiredOneShot()
271+
bool expiredOneShot() const
271272
{
272-
_current = TimePolicyT::time();
273273
// returns "always expired" or "has expired"
274-
return !canWait() || checkExpired();
274+
return !canWait() || checkExpired(TimePolicyT::time());
275275
}
276276

277277
timeType _timeout;
278278
timeType _start;
279-
timeType _current;
280279
bool _neverExpires;
281280
};
282281

0 commit comments

Comments
 (0)