More context: Specific scenario where I'm observing (I was not able to reproduce it outside of our application): - 4 jruby rack workers are started using `jruby.worker.script=SharedTogo::Workers.start_all!` - Each logs its thread_id at the beginning, then goes into an infinite loop, periodically checking a `Concurrent::AtomicBoolean` shutdown flag - An `at_exit` block is used to set the shutdown flag to true - When the workers notice the flag, they exit the loop and log their thread id - at this point it is completely different and the worker has lost its thread-local variables