-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kill Zombies from the Fractal Dimension #638
Conversation
It still seems like instead of there being nProcessors number of threads, about 300 threads are created per processor and quickly terminated. Now peak threads are more like 3× number of processors, but there are still approximately nProcessors-worth of zombie threads surviving after the plugin finishes executing.
Happy Friday 13th
Closes bonej-org/BoneJ2#300 |
Wow, nice! Thanks. 🍻 I'm wondering why these ops use their own |
I tried to cut a new release, but am seeing some test failures on my local system (but not on CI):
I'll investigate when I can. |
This smells like something we've seen for a while. Test failures on some machines (usually bigger ones, e.g. workstations) but passing on CI and smaller machines (e.g. laptops). bonej-org/BoneJ2#196 (comment) I wonder if there is a problem with the parallelisation model that leads to overwriting of pixel values depending on number of threads in use. |
This PR fixes it at the cost of running in a single thread, which is OK for now. |
There is another PR from last year that does exactly that, but unfortunately that one is buggy and we should use #639 until we figure out a better multithreading strategy. Test and builds now pass and user operation works on my 40-core workstation. |
I chose to use my own ExecutorService instead of ThreadService because at the time using a FixedThreadPool ran faster with a certain N than what ThreadService used |
Fixes #637
ExecutorService
thread pools were being created but not cleanlyshutdown()
. Now they are properly terminated. Happy Friday 13th!