Opened 12 years ago

Last modified 7 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 by Jakub Jermář, 12 years ago

Description: modified (diff)

comment:2 by Jakub Jermář, 10 years ago

Milestone: 0.6.00.7.1

comment:3 by Jakub Jermář, 7 years ago

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