does that actually cause the worker thread to run that code? or does it simply execute in the main thread, synchronously from the event loop? you’d want to send the worker a signal instead.
I suspect that you have synchronization issues. something (object) isn’t safe to call methods on from another thread while it’s used in one thread already.