The Task Pool library is a utility library that provides a “pool” of tasks that can be shared by the MCU application and FreeRTOS+ libraries. This pooling of tasks alleviates the need for each library to create and manage its own tasks.
The FreeRTOS+ libraries can be used individually or collectively to create locally connected or internet connected MCU applications. Each library can be freely used and is distributed under the MIT Open Source License.
Task Pool Implementations
The Task Pool library has many use cases, including for large Linux application development. Typical FreeRTOS use cases do not require its full functionality, so an optimized version specifically for FreeRTOS is provided in the demo described on these pages. In this optimized version, the task pool:
- Only supports a single task pool (system task pool) at a time.
- Does not auto-scale by dynamically adding more tasks if the number of tasks in the pool becomes exhausted. Instead, the number of tasks in the pool is fixed at compile time by the IOT_TASKPOOL_NUMBER_OF_WORKERS constant in iot_config.h.
- Cannot be shut down – it exists for the lifetime of the application.
Users can switch to the full task pool implementation if the full capability is needed.