After reading the thread starvation issue #41586 carefully I am still unable to understand what is the new info there.
E.g. Wikipedia writes under “Cooperative multitasking”:
As a cooperatively multitasked system relies on each process regularly giving up time to other processes on the system, one poorly designed program can consume all of the CPU time for itself, either by performing extensive calculations or by busy waiting;
It seems to me that this is the case for the described system and the example code. If that is true, then inserting gc safepoints will not be enough, yields are necessary. (But other code may benefit from that, e.g.: Multi-threadded processing of large number of files faster when reading in batch )
Am I missing something? (To be honest, I do not understand everything, especially in vchuravy’s comment, or what exactly @threads begin ... end
is - it only works for for
cycles, not for begin blocks)
Could you please explain a bit, what is this issue about?