Download Latest Version Version 4.0.3 source code.tar.gz (961.2 kB)
Email in envelope

Get an email when there's a new version of Task Scheduler

Home / v4.0.0
Name Modified Size InfoDownloads / 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
Source: README.md, updated 2025-09-22