Rev 1518 | Rev 1536 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1518 | Rev 1532 | ||
---|---|---|---|
Line 284... | Line 284... | ||
284 | msg_t *msg; |
284 | msg_t *msg; |
285 | ipc_callid_t callid; |
285 | ipc_callid_t callid; |
286 | 286 | ||
287 | assert(PS_connection); |
287 | assert(PS_connection); |
288 | 288 | ||
- | 289 | if (usecs < 0) /* TODO: let it get through the ipc_call once */ |
|
- | 290 | return 0; |
|
- | 291 | ||
289 | futex_down(&async_futex); |
292 | futex_down(&async_futex); |
290 | 293 | ||
291 | if (usecs) { |
294 | if (usecs) { |
292 | gettimeofday(&PS_connection->wdata.expires, NULL); |
295 | gettimeofday(&PS_connection->wdata.expires, NULL); |
293 | tv_add(&PS_connection->wdata.expires, usecs); |
296 | tv_add(&PS_connection->wdata.expires, usecs); |
Line 653... | Line 656... | ||
653 | int async_wait_timeout(aid_t amsgid, ipcarg_t *retval, suseconds_t timeout) |
656 | int async_wait_timeout(aid_t amsgid, ipcarg_t *retval, suseconds_t timeout) |
654 | { |
657 | { |
655 | amsg_t *msg = (amsg_t *) amsgid; |
658 | amsg_t *msg = (amsg_t *) amsgid; |
656 | connection_t *conn; |
659 | connection_t *conn; |
657 | 660 | ||
- | 661 | /* TODO: Let it go through the event read at least once */ |
|
- | 662 | if (timeout < 0) |
|
- | 663 | return ETIMEOUT; |
|
- | 664 | ||
658 | futex_down(&async_futex); |
665 | futex_down(&async_futex); |
659 | if (msg->done) { |
666 | if (msg->done) { |
660 | futex_up(&async_futex); |
667 | futex_up(&async_futex); |
661 | goto done; |
668 | goto done; |
662 | } |
669 | } |