Fork us on GitHub Follow us on Facebook Follow us on Twitter

Opened 10 years ago

Last modified 5 years ago

#443 new defect

IPC hangup should awaken blocked clients

Reported by: Jakub Jermář Owned by: Jakub Jermář
Priority: major Milestone:
Component: helenos/lib/c Version: mainline
Keywords: Cc:
Blocker for: Depends on:
See also:

Description (last modified by Jakub Jermář)

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 async_wait_for() or async_wait_timeout().

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.

Change History (3)

comment:1 Changed 10 years ago by Jakub Jermář

Description: modified (diff)

comment:2 Changed 8 years ago by Jakub Jermář


comment:3 Changed 5 years ago by Jakub Jermář

Milestone: 0.7.1
Note: See TracTickets for help on using tickets.