I am considering removing low-level Thread access to plugins, a number of reasons justify this:
- Normally, one would use the scheduler to run tasks - it keeps tasks in sync and provides a thread pool which reduces thread lifecycle overhead
- Threads are most often abused or not used properly
- Threads interfere with Trident performance as it contends for core cycles
- Thread lifecycles blocks the thread which dispatches plugin events, degrading performance of other plugins
- 99% of plugin developers shouldn't use or don't need threads, the 1% that do know what a scheduler is
Are there any thoughts, comments, or disagreements to elaborate on this debate?