diff options
| author | Shell <[email protected]> | 2024-11-15 11:54:38 +0800 |
|---|---|---|
| committer | Rbb666 <[email protected]> | 2025-01-06 19:34:16 +0800 |
| commit | c0b0838892538d2ca13c844ea598db25ca0323e8 (patch) | |
| tree | 77348fffc063d2ec54959f60f4abaa8781ba1ce1 /src | |
| parent | 2946e4a316a949e80da6da3d4bda8646a2ae03b3 (diff) | |
feat: support PID iteration
This change introduces the `lwp_pid_for_each` function, which provides a
convenient and thread-safe method for iterating over PIDs with a user-
defined callback. This addition is necessary to support cases where
operations must be performed on each PID in the balanced tree, enhancing
flexibility and modularity for PID management.
Changes:
- Added `lwp_pid_for_each` function in `lwp_pid.c` to allow iteration
over PIDs using a callback function and optional data parameter.
- Defined a new internal `pid_foreach_param` structure to encapsulate
the callback and data for the iteration.
- Added `_before_cb` helper function for executing the callback on each
PID node during AVL traversal.
- Ensured thread safety by acquiring and releasing the PID lock around
the AVL traversal within `lwp_pid_for_each`.
- Updated `lwp_pid.h` with the `lwp_pid_for_each` function prototype and
included `rtthread.h` for necessary types.
Signed-off-by: Shell <[email protected]>
Diffstat (limited to 'src')
0 files changed, 0 insertions, 0 deletions
