Subversion Repositories HelenOS

Rev

Rev 2490 | Rev 2534 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2490 Rev 2492
Line 354... Line 354...
354
    while (list_empty(&conn->msg_queue)) {
354
    while (list_empty(&conn->msg_queue)) {
355
        if (usecs)
355
        if (usecs)
356
            insert_timeout(&conn->wdata);
356
            insert_timeout(&conn->wdata);
357
 
357
 
358
        conn->wdata.active = 0;
358
        conn->wdata.active = 0;
-
 
359
        /*
-
 
360
         * Note: the current fibril will be rescheduled either due to a
-
 
361
         * timeout or due to an arriving message destined to it. In the
-
 
362
         * former case, handle_expired_timeouts() and, in the latter
-
 
363
         * case, route_call() will perform the wakeup.
-
 
364
         */
359
        fibril_schedule_next_adv(FIBRIL_TO_MANAGER);
365
        fibril_schedule_next_adv(FIBRIL_TO_MANAGER);
360
        /*
366
        /*
361
         * Futex is up after getting back from async_manager get it
367
         * Futex is up after getting back from async_manager get it
362
         * again.
368
         * again.
363
        */
369
         */
364
        futex_down(&async_futex);
370
        futex_down(&async_futex);
365
        if (usecs && conn->wdata.timedout &&
371
        if (usecs && conn->wdata.timedout &&
366
            list_empty(&conn->msg_queue)) {
372
            list_empty(&conn->msg_queue)) {
367
            /* If we timed out -> exit */
373
            /* If we timed out -> exit */
368
            futex_up(&async_futex);
374
            futex_up(&async_futex);