def haveDinner(philosopherId):
    leftFork = philosopherId
rightFork = (philosopherId + 1) % FORKS_COUNT
if leftFork > rightFork:
    swap(leftFork, rightFork)
while true:
    while not compare_and_swap(taken[leftFork], false, true):
        pass
Неблокирующее решение для обедающих философов