kernel: awake() wake up only truly blocking syscalls

If a syscall did not entered sleep(), the pendingWakeup is not consumed.
This commit is contained in:
2017-05-17 02:04:08 +02:00
parent 1dc8991331
commit 22d90985a5
6 changed files with 17 additions and 7 deletions

View File

@ -839,6 +839,7 @@ sysrendezvous(void* tagp, void* rendvalp)
l = &p->rendhash;
}
up->blockingsc = up->cursyscall;
if(awakeOnBlock(up)){
unlock(&up->rgrp->l);
result = UINT2PTR(up->rendval);