[MIRROR] Addresses Icon Smoothing Runtimes #1031
Merged
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.
Mirrored on Skyrat: Skyrat-SS13/Skyrat-tg#25494
Original PR: tgstation/tgstation#80171
About The Pull Request
Noticed this in the runtime logs on Terry:
Glass tables, on their qdeletion (which occurs when someone breaks one by standing on it), call
QUEUE_SMOOTH_NEIGHBORS()
, which invokes the smooth on potentially all other glass tables it's merged to. However, since this is a queueing process that we halt if the MC is choked out or we're overtiming elsewhere, it's possible that the queued objectqdel()
s (like if someone is spamming throwing people on 2x1 glass tables) between fires ofSSicon_smooth
.Instead of doing a crash on a null z-level, let's check if we're qdeleted first. It is not unreasonable to just simply early-return because it is always possible that things just get qdeleted while
SSicon_smooth
sleeps/postpones work when the server is crunching and munching cpu time.Changelog
No affect to players.