Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix the problem by adding a queue instead of an error message and restarting continuously
Thread Pooling for Plugin Event Callbacks in Pwnagotchi
Description
Implemented a thread pooling mechanism for executing plugin event callbacks in the Pwnagotchi plugin management system (init.py). Instead of creating a new thread for each callback, a fixed number of worker threads are now utilized to execute queued tasks. This mitigates the "can't start new thread" error by limiting the number of concurrently running threads.
Motivation and Context
The changes address the issue where the Pwnagotchi system throws a "can't start new thread" error due to excessive thread creation when handling multiple plugin event callbacks. Especially on devices with limited resources like the Raspberry Pi Zero, this can lead to system resource exhaustion. By using a thread pool, we ensure efficient use of threads, preventing resource overuse and the aforementioned error.
Link to the issue: #24
How Has This Been Tested?
The modifications have been reviewed for syntactical accuracy, and the logic aligns with standard thread pooling implementations.
Replaced the init.py file and deleted the cache file. Reboot the pwnagotchi and I did not received any error.
Types of changes
Checklist:
git commit -s