Ik heb wat problemen bij het interpreteren van het algoritme van Dekker.
Code: Selecteer alles
entrance_intents[0] = true;
while (entrance_intents[1]) {
if (turn ≠ 0) {
entrance_intents[0] = false;
while (turn ≠ 0) {
// busy wait
}
entrance_intents[0] = true;
}
}
// critical section
...
turn = 1;
entrance_intents[0] = false;
// remainder section
Stel nu dat p0 de kritieke sectie binnen wilt en zijn vlagje hoog zet. p1 toont op dit moment nog geen interesse in de kritieke sectie. Waar mijn probleem zit is dat, stel dat tijdens de kritieke sectie p0 crasht, dan blijft de vlag van p0 hoog staan, en zal - naar mijn inzicht - p1 nooit de eerste while voorbij kunnen, en bijgevolg oneindig lang blijven pollen naar de status van het vlagje.