@@ -119,15 +119,15 @@ bool schedule_recurrent_function_us(const std::function<bool(void)>& fn,
119
119
item->mFunc = fn;
120
120
item->alarm = alarm ;
121
121
122
+ esp8266::InterruptLock lockAllInterruptsInThisScope;
123
+
122
124
// prevent new item overwriting an already expired rTarget.
123
- const int32_t rRemaining = rTarget - micros ();
124
- if (!rFirst || (rRemaining > 0 && static_cast <uint32_t >(rRemaining ) > item->callNow .remaining ()))
125
+ const int32_t remaining = rTarget - micros ();
126
+ if (!rFirst || (remaining > 0 && static_cast <uint32_t >(remaining ) > item->callNow .remaining ()))
125
127
{
126
128
rTarget = micros () + item->callNow .remaining ();
127
129
}
128
130
129
- esp8266::InterruptLock lockAllInterruptsInThisScope;
130
-
131
131
if (rLast)
132
132
{
133
133
rLast->mNext = item;
@@ -145,8 +145,8 @@ uint32_t get_scheduled_recurrent_delay_us()
145
145
{
146
146
if (!rFirst) return ~static_cast <uint32_t >(0 );
147
147
// handle already expired rTarget.
148
- const int32_t rRemaining = rTarget - micros ();
149
- return (rRemaining > 0 ) ? static_cast <uint32_t >(rRemaining ) : 0 ;
148
+ const int32_t remaining = rTarget - micros ();
149
+ return (remaining > 0 ) ? static_cast <uint32_t >(remaining ) : 0 ;
150
150
}
151
151
152
152
void run_scheduled_functions ()
@@ -248,9 +248,12 @@ void run_scheduled_recurrent_functions()
248
248
{
249
249
prev = current;
250
250
current = current->mNext ;
251
+
252
+ esp8266::InterruptLock lockAllInterruptsInThisScope;
253
+
251
254
// prevent current item overwriting an already expired rTarget.
252
- const int32_t rRemaining = rTarget - micros ();
253
- if (rRemaining > 0 && static_cast <uint32_t >(rRemaining ) > current->callNow .remaining ())
255
+ const int32_t remaining = rTarget - micros ();
256
+ if (remaining > 0 && static_cast <uint32_t >(remaining ) > current->callNow .remaining ())
254
257
{
255
258
rTarget = micros () + current->callNow .remaining ();
256
259
}
0 commit comments