diff --git a/src/sys/kernel/spinlock.c b/src/sys/kernel/spinlock.c index 94f87ce..5230928 100755 --- a/src/sys/kernel/spinlock.c +++ b/src/sys/kernel/spinlock.c @@ -57,10 +57,11 @@ { while(choiceInProgress[i] == 1) ; - - while((ticket[i] < max_ticket) || - ((ticket[i] == max_ticket) && (i >= cpuID))) + + while (((ticket[i] < max_ticket) || ((ticket[i] == max_ticket) && (i < cpuID))) + && (ticket[i] != 0)) ; + } return SPINLOCK_SUCCESS;