| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2025-09-22 | 3.7 kB | |
| Version 4.0.0 source code.tar.gz | 2025-09-22 | 953.2 kB | |
| Version 4.0.0 source code.zip | 2025-09-22 | 1.0 MB | |
| Totals: 3 Items | 2.0 MB | 0 | |
v3.8.0: 2023-01-24 - feature: added setIntervalNodelay() method to dynamically adjust current interval
v3.8.1: 2023-05-11 - bug: conditional compile options missing from *.hpp files (Adafruit support)
v3.8.2: 2023-09-27 - feature: _TASK_TICKLESS - support for tickless execution under FreeRTOS - feature: _TASK_DO_NOT_YIELD - ability to disable yield() in execute() method
v3.8.3: 2023-09-29 - feature: _TASK_TICKLESS - change in approach for backwards compatibility - feature: added scheduler stats for total/active/invoked tasks for each pass
v3.8.4: 2024-01-13 - bug: (git PR [#180]): the variables tStart and tFinish are required if sleep support is enabled, independent of _TASK_TIMECRITICAL. However, they were guarded by _TASK_TIMECRITICAL as well. - bug: (git PR #181): delete manually disabled tasks with self-destruct flag - bug: (git PR #182): correct deletion of self-destruct 'current' task in disableAll()
v3.8.5: 2024-06-17 - updated volatile compound statements after C++20 deprecated compound assignment on volatiles
v3.9.0: 2024-08-14 - _TASK_ISR_SUPPORT compile option (espressif chips only) - allow placing a few control methods into IRAM to be used in ISRs list of IRAM-enabled methods: StatusRequest::signal StatusRequest::signalComplete Task::enable Task::enableIfNot Task::enableDelayed Task::restart Task::restartDelayed Task::delay Task::forceNextIteration
v4.0.0: 2024-10-26 - MAJOR UPDATE for use in pre-emptive environments (FreeRTOS or Zephyr) - list of IRAM-enabled methods extended: Task::disable Task::abort Task::cancel - _TASK_DEFINE_MILLIS - deprecated - _TASK_EXTERNAL_TIME - deprecated - New compile options: _TASK_NON_ARDUINO - does not include "Arduino.h" target platform has to implement: unsigned long _task_millis(); unsigned long _task_micros(); void _task_yield(); _TASK_HEADER_AND_CPP - enables compilation of TaskScheduler.cpp (non Arduino IDE use)
- Major rework of the _TASK_THREAD_SAFE approach. Developers should only be calling Scheduler and Task methods
directly from the thread where TaskScheduler execute() method runs.
Calls from the other threads should be done via Scheduler::requestAction(...) methods.
Target platform should implement an action queue and two methods:
bool _task_enqueue_request(_task_request_t* req); // puts _task_request_t object on the action queue
bool _task_dequeue_request(_task_request_t* req); // retrieves _task_request_t object from the action queue
Please see examples folder for implementation folder.
2025-09-13:
- feature: allow _TASK_STD_FUNCTION for all platforms (you should know what you are doing)
- feature: allow _TASK_DO_NOT_YIELD for all platforms (you should know what you are doing)
2025-09-21:
- bug: incorrect behavior of the StatusRequest timeout functionality due to uninitialized timeout variable
- update: addedd Doxygen comments to all methods and variables
-update: added a number of compile and unit tests for CI/CD