mirror of
https://github.com/esp8266/Arduino.git
synced 2025-07-05 12:42:22 +03:00
Allow constexpr evalution to occur. optimistic_yield is always called with a literal parameter value.
This commit is contained in:
@ -57,7 +57,7 @@ cont_t* g_pcont __attribute__((section(".noinit")));
|
||||
/* Event queue used by the main (arduino) task */
|
||||
static os_event_t s_loop_queue[LOOP_QUEUE_SIZE];
|
||||
|
||||
/* Used to implement optimistic_yield */
|
||||
/* Used to implement __optimistic_yield */
|
||||
static uint32_t s_cycles_since_yield_start;
|
||||
|
||||
/* For ets_intr_lock_nest / ets_intr_unlock_nest
|
||||
@ -125,10 +125,9 @@ extern "C" void __yield() {
|
||||
|
||||
extern "C" void yield(void) __attribute__ ((weak, alias("__yield")));
|
||||
|
||||
extern "C" void optimistic_yield(uint32_t interval_us) {
|
||||
const uint32_t interval_cycles = interval_us * ESP.getCpuFreqMHz();
|
||||
if (can_yield() &&
|
||||
(ESP.getCycleCount() - s_cycles_since_yield_start) > interval_cycles)
|
||||
extern "C" void __optimistic_yield(uint32_t intvl_cycles) {
|
||||
if ((ESP.getCycleCount() - s_cycles_since_yield_start) > intvl_cycles &&
|
||||
can_yield())
|
||||
{
|
||||
yield();
|
||||
}
|
||||
|
Reference in New Issue
Block a user