Only gc sparks locally when we can ensure marking is done.
Fixes #22528 (closed)
We now only prune sparks in gc workers if work stealing is enabled as that implies a synchronization point after marking.
I think this should be fine.
- Spark pruning is very cheap. So one needs to have a very large amount of them around for it being done in parallel to make a significant difference.
- Programms using a lot of sparks likely want parallel gc. So we should get pruning in the workers in that case as well.