J. Nick Koston
39b2b901f7
[core] Replace scheduler pool vector with unbounded intrusive freelist ( #16172 )
2026-05-05 18:26:19 -05:00
J. Nick Koston
c41f38e16d
[scheduler] Add self-keyed timer API for callers without a Component ( #16127 )
2026-04-29 13:24:37 -05:00
J. Nick Koston
a03de7cea2
[core] Freshen loop_component_start_time_ before scheduler dispatch ( #16064 )
2026-04-28 13:23:08 +12:00
J. Nick Koston
773b4d887b
[core] Scheduler: don't sleep while defer queue is non-empty ( #15968 )
2026-04-24 08:11:29 -05:00
J. Nick Koston
13fe881f70
[scheduler][core] Lock-free fast-path on ESPHOME_THREAD_MULTI_NO_ATOMICS via __atomic builtins ( #15947 )
2026-04-23 08:20:31 -05:00
J. Nick Koston
df72aa26c0
[core] Feed WDT unconditionally in main loop to fix empty-config panic ( #15830 )
2026-04-18 11:58:54 +00:00
J. Nick Koston
523c6f2376
[core] coerce set_interval(0) / update_interval: 0ms to 1ms ( #15799 )
2026-04-17 02:45:50 -10:00
J. Nick Koston and Copilot
506edaadd5
[core] Inline feed_wdt hot path with out-of-line slow path ( #15656 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-14 19:08:30 +00:00
J. Nick Koston
674d030cbb
[core] Reschedule fired intervals directly into heap ( #15516 )
2026-04-07 07:36:55 -10:00
J. Nick Koston
82dc80a413
[scheduler] Skip cancel for anonymous items, add empty-container fast path ( #15397 )
2026-04-07 01:26:40 +00:00
J. Nick Koston
0de2c758aa
[scheduler] Use placement-new for std::function move in set_timer_common_ ( #14757 )
2026-03-23 16:31:27 +13:00
J. Nick Koston
9a80c980cb
[scheduler] Early exit cancel path after first match ( #14902 )
2026-03-18 07:48:26 -10:00
J. Nick Koston
c9e6c85e6a
[scheduler] Inline fast-path checks into header ( #14905 )
2026-03-18 07:48:11 -10:00
b9e8da92c7
[scheduler] Fix UB in cross-thread counter/vector reads, add atomic fast-path ( #14880 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-03-18 00:19:31 +00:00
J. Nick Koston
d6d3bbbad8
[scheduler] Use integer math for interval offset calculation ( #14755 )
2026-03-13 13:28:34 -10:00
J. Nick Koston
9dd3ec258c
[scheduler] Replace unique_ptr with raw pointers, add leak detection ( #14620 )
2026-03-10 09:11:28 -10:00
J. Nick Koston and Claude Opus 4.6
1c5fd8bbd4
[core] Move millis_64 rollover tracking out of Scheduler ( #14360 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 06:56:51 -10:00
J. Nick Koston and Claude Opus 4.6
280f874edc
[rp2040] Use native time_us_64() for millis_64() ( #14356 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-27 11:18:02 -10:00
J. Nick Koston and Claude Opus 4.6
63e757807e
[zephyr] Use native k_uptime_get() for millis_64() ( #14350 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-27 10:01:09 -10:00
J. Nick Koston and Claude Opus 4.6
8698b01bc7
[host] Use native clock_gettime for millis_64() ( #14340 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-27 18:54:13 +00:00
J. Nick Koston
1c7f769ec7
[core] Add millis_64() HAL function with native ESP32 implementation ( #14339 )
2026-02-27 07:48:21 -10:00
J. Nick Koston and pre-commit-ci-lite[bot]
2ff876c629
[core] Use custom deleter for SchedulerItem unique_ptr to prevent destructor inlining ( #14258 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-02-25 13:18:44 +13:00
J. Nick Koston
08dc487b5b
[core] Pass std::function by rvalue reference in scheduler ( #14260 )
2026-02-25 13:08:07 +13:00
J. Nick Koston
a468261523
[scheduler] De-template and consolidate scheduler helper functions ( #14164 )
2026-02-21 19:41:26 -06:00
J. Nick Koston
462ac29563
[scheduler] Use relaxed memory ordering for atomic reads under lock ( #14140 )
2026-02-21 17:29:41 -06:00
J. Nick Koston
6f198adb0c
[scheduler] Reduce lock acquisitions in process_defer_queue_ ( #14107 )
2026-02-21 14:29:50 -06:00
J. Nick Koston
abe37c9841
[uptime] Use scheduler millis_64() for rollover-safe uptime tracking ( #14170 )
2026-02-21 03:08:49 +00:00
J. Nick Koston
dff9780d3a
[core] Use constexpr for compile-time constants ( #14071 )
2026-02-19 03:19:48 +00:00
J. Nick Koston
38bba3f5a2
[scheduler] Reduce set_timer_common_ hot path size by 25% ( #13899 )
2026-02-11 16:42:13 +13:00
J. Nick Koston and Jonathan Swoboda
e0712cc53b
[scheduler] Make core timer ID collisions impossible with type-safe internal IDs ( #13882 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-02-09 13:16:22 -06:00
J. Nick Koston
2383b6b8b4
[core] Deprecate set_retry, cancel_retry, and RetryResult ( #13845 )
2026-02-09 12:05:32 -06:00
J. Nick Koston
248fc06dac
[scheduler] Eliminate heap allocation in full_cleanup_removed_items_ ( #13837 )
2026-02-09 08:44:20 -06:00
J. Nick Koston
d5f557ad1c
[scheduler] Eliminate heap allocations for std::string names and add uint32_t ID API ( #13200 )
2026-01-14 09:15:31 -05:00
J. Nick Koston
3d74d1e7f0
[libretiny] Regenerate boards, enable Cortex-M4 atomics, and consolidate platform code ( #13191 )
2026-01-13 21:39:11 +00:00
J. Nick Koston
861ed8dd41
[scheduler] Avoid std::string allocation in RetryArgs ( #12311 )
2025-12-09 09:27:12 -05:00
J. Nick Koston
05826d5ead
[scheduler] Fix missing lock when recycling items in defer queue processing ( #12343 )
2025-12-07 13:30:22 -06:00
J. Nick Koston
80e881655f
[scheduler] Fix use-after-free when cancelling timeouts from non-main-loop threads ( #12288 )
2025-12-04 19:14:22 -06:00
J. Nick Koston
1fadd1227d
[scheduler] Fix use-after-move crash in heap operations ( #12124 )
2025-11-27 10:50:21 -06:00
J. Nick Koston
1888f5ffd5
[scheduler] Add defensive nullptr checks and explicit locking requirements ( #11974 )
2025-11-18 18:16:18 +00:00
J. Nick Koston
fc546ca3f6
[scheduler] Fix timing breakage after 49 days of uptime on ESP8266/RP2040 ( #11924 )
2025-11-15 22:20:57 -06:00
J. Nick Koston
df53ff7afe
[scheduler] Extract helper functions to improve code readability ( #11730 )
2025-11-06 07:13:12 +13:00
J. Nick Koston
4a5e6576c8
[scheduler] Refactor call() for improved code organization ( #11643 )
2025-11-03 14:29:29 +13:00
J. Nick Koston
f25af18655
[scheduler] Replace defer queue deque with vector to avoid 512-byte upfront allocation ( #11305 )
2025-10-20 07:34:34 +13:00
J. Nick Koston
e2c5eeef97
[scheduler] Deduplicate item removal code with template helper ( #11017 )
2025-10-05 16:32:51 -05:00
J. Nick Koston
ac07a00141
[scheduler] Fix timing accumulation in scheduler causing incorrect execution measurements ( #10719 )
2025-09-14 22:05:56 +00:00
J. Nick Koston
5cc0e21bc7
[core] Reduce unnecessary nesting in scheduler loop ( #10644 )
2025-09-09 09:04:07 +12:00
J. Nick Koston
8d90f13e97
[core] Store component source strings in flash on ESP8266 (breaking change) ( #10621 )
2025-09-07 20:10:00 -05:00
J. Nick Koston and Copilot
166ad942ef
[scheduler] Reduce SchedulerItem memory usage by 7.4% on 32-bit platforms ( #10553 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-09-07 18:51:07 -05:00
J. Nick Koston
28d16728d3
[core] Add memory pool to scheduler to reduce heap fragmentation ( #10536 )
2025-09-08 10:27:58 +12:00
J. Nick Koston and Copilot
b25506b045
[core] Skip redundant process_to_add() call when no scheduler items added ( #10630 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-09-08 09:10:55 +12:00