Subversion Repositories HelenOS-historic

Rev

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
    }