ipc/sem.c: handle spurious wakeups