Skip to content

Commit c55ffe6

Browse files
committed
std::bind is IRAM cache safe, but lambdas are not.
1 parent 12c27a4 commit c55ffe6

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

libraries/Ticker/src/Ticker.h

+5-5
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class Ticker
3838
// callback will be called at following loop() after ticker fires
3939
void attach_scheduled(float seconds, callback_t callback)
4040
{
41-
_callback = [callback]() { schedule_function(callback); };
41+
_callback = std::bind(schedule_function, callback);
4242
_attach_ms(1000UL * seconds, true, _callback, _callback.arg());
4343
}
4444

@@ -52,14 +52,14 @@ class Ticker
5252
// callback will be called at following loop() after ticker fires
5353
void attach_ms_scheduled(uint32_t milliseconds, callback_t callback)
5454
{
55-
_callback = [callback]() { schedule_function(callback); };
55+
_callback = std::bind(schedule_function, callback);
5656
_attach_ms(milliseconds, true, _callback, _callback.arg());
5757
}
5858

5959
// callback will be called at following yield() after ticker fires
6060
void attach_ms_scheduled_accurate(uint32_t milliseconds, callback_t callback)
6161
{
62-
_callback = [callback]() { schedule_recurrent_function_us([callback]() { callback(); return false; }, 0); };
62+
_callback = std::bind(schedule_recurrent_function_us, [callback]() { callback(); return false; }, 0, nullptr);
6363
_attach_ms(milliseconds, true, _callback, _callback.arg());
6464
}
6565

@@ -95,7 +95,7 @@ class Ticker
9595
// callback will be called at following loop() after ticker fires
9696
void once_scheduled(float seconds, callback_t callback)
9797
{
98-
_callback = [callback]() { schedule_function(callback); };
98+
_callback = std::bind(schedule_function, callback);
9999
_attach_ms(1000UL * seconds, false, _callback, _callback.arg());
100100
}
101101

@@ -109,7 +109,7 @@ class Ticker
109109
// callback will be called at following loop() after ticker fires
110110
void once_ms_scheduled(uint32_t milliseconds, callback_t callback)
111111
{
112-
_callback = [callback]() { schedule_function(callback); };
112+
_callback = std::bind(schedule_function, callback);
113113
_attach_ms(milliseconds, false, _callback, _callback.arg());
114114
}
115115

0 commit comments

Comments
 (0)