LDEV-4696 - Feat/allow Lucee threads to cooperatively stop avoiding threadDeath in tomcat #2425
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.
Hello,
This is a rewrite of a previously closed Pull request,
The goal of this mr is to (at the cost of a slight overhead) allow the inLucee() code to cooperate, to help out with readability, i've used a bytecode "generator", which should reduce the clutter quite a bit
This approach won't for obvious reasons solve all the code path possibles (an infinite recursion is out of scope) but it should allow a better way to stop threads dynamically.
This code has been used in production with millions of request per day for years now, and we started see thread death again by trying to go back to vanilla lucee and getting traffic spikes.
If there is anything that can be done to help getting this in a better state, please let me know.
In leads for improvement:
https://luceeserver.atlassian.net/browse/LDEV-4696