mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-29 02:51:41 +00:00
* sstimer no longer batches maintenance tasks to the bucket list to avoid edge cases and duplicated logic. (#55140) * sstimer no longer delays maintenance tasks if its going over its tick. This was leading to bugs if certain state operations happened while a task was delayed, furthermore if the timer subsystem was overloaded, the invoked timers list would bloat as it would never get cleared out, which would make all timer invocations take longer as they had to add to an ever growing list. * Update timer.dm * Fix error when a bucket has only one timer. * simply timer loop logic & improve timer debug string It would try to batch up linked list modifications and every issue we have ever had has been related to this, so now it just directly pulls the head of the linked list off, using bucketEject, rather then detect when it reaches the end of the linked list queue it will now just know because the bucket will be empty. All bucketCount logic has been moved to bucketEject and bucketJoin(), which should also keep that more proper. * Update timer.dm * Update timer.dm * sstimer no longer batches maintenance tasks to the bucket list to avoid edge cases and duplicated logic. Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>