IPC hangup should awaken blocked clients
|Reported by:||Jakub Jermář||Owned by:||Jakub Jermář|
|Blocker for:||Depends on:|
Description (last modified by )
There is a difference between the behavior on IPC_M_PHONE_HUNGUP for blocked servers and blocked clients. For our purpose, servers are fibril blocked in
async_get_call_timeout() and clients are fibrils blocked in
The async framework will attempt to wake up a blocked server from
route_call() but it will let a blocked client continue to sleep.
We should fix this for the blocked clients and, also, callers of
fibril_condvar_wait() too so that if the fibril receives IPC_M_PHONE_HUNGUP, the blocking fibril will interrupt its sleep with a return value indicating the sleep was interrupted.