Quality RTOS & Embedded Software

NOTE: The Task Pool library and documentation are in the FreeRTOS Labs.  The libraries in the FreeRTOS Labs download directory are fully functional, but undergoing optimizations or refactoring to improve memory usage, modularity, documentation, demo usability, or test coverage.  They are available as part of the main download.

Task Pool


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.


Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.