Implement interruptible wait for messages sent by the kernel
commit43e2cbcf82bf0d553c0cb190d4043a6eed86a617
authorJakub Jermar <jakub@jermar.eu>
Sat, 10 Sep 2016 13:56:43 +0000 (10 15:56 +0200)
committerJakub Jermar <jakub@jermar.eu>
Sat, 10 Sep 2016 13:56:43 +0000 (10 15:56 +0200)
tree9ec47261b749aa275261e941343eb03d193e7b54
parent838ea8aa268ce5aa4f3d613a136463c7e1e46857
Implement interruptible wait for messages sent by the kernel

This pertains specifically to handling the IPC_M_PAGE_IN requests
sent by the kernel on behalf of the faulting thread. If the external
pager process does not respond for some reason, the user may decide to
kill the blocked client. That will result in interrupting the client
from the sleep. The kernel will then perform cleanup.

This changeset implements the cleanup by either forgetting the call
(i.e. donating it to the callee) or waiting for the arriving answer,
whichever of the two succeeds.
kernel/generic/src/ipc/ipc.c
kernel/generic/src/ipc/sysipc.c