> > If processPreemptionYields false the output should be: > > ... > p2 > p1 > p2 > p1 > p2 > p1 > ... > > i.e. it is regular. What we're actually seeing is: > > ... > 'p1' > 'p2' > 'p1' > 'p2' > 'p2' > ... > > Which showing that p2 might get to signal multiple times before p1 > gets to complete a single loop.
Yes this is why I prefer the new preemption semantics. The old semantics looks like bringing more “chaos”. On one hand, it may give a chance to some processes to execute but I wonder also if code did not get more complex to protect against extra race conditions (since the old way could schedule more randomly). Now we were discussing some weeks ago about the risks to use the new semantics and also if we can identify the processes that we will have to change to explicitly yield. S.
