Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/async/client.c

    rfb0ec570 rab6edb6  
    121121#include <abi/mm/as.h>
    122122#include "../private/libc.h"
     123#include "../private/fibril.h"
    123124
    124125/** Naming service session */
     
    190191}
    191192
     193
    192194/** Mutex protecting inactive_exch_list and avail_phone_cv.
    193195 *
     
    241243        assert(arg);
    242244
    243         futex_down(&async_futex);
     245        futex_lock(&async_futex);
    244246
    245247        amsg_t *msg = (amsg_t *) arg;
     
    266268        }
    267269
    268         futex_up(&async_futex);
     270        futex_unlock(&async_futex);
    269271}
    270272
     
    355357        amsg_t *msg = (amsg_t *) amsgid;
    356358
    357         futex_down(&async_futex);
     359        futex_lock(&async_futex);
    358360
    359361        assert(!msg->forget);
     
    361363
    362364        if (msg->done) {
    363                 futex_up(&async_futex);
     365                futex_unlock(&async_futex);
    364366                goto done;
    365367        }
     
    370372
    371373        /* Leave the async_futex locked when entering this function */
    372         fibril_switch(FIBRIL_TO_MANAGER);
    373 
    374         /* Futex is up automatically after fibril_switch */
     374        fibril_switch(FIBRIL_FROM_BLOCKED);
     375        futex_unlock(&async_futex);
    375376
    376377done:
     
    401402        amsg_t *msg = (amsg_t *) amsgid;
    402403
    403         futex_down(&async_futex);
     404        futex_lock(&async_futex);
    404405
    405406        assert(!msg->forget);
     
    407408
    408409        if (msg->done) {
    409                 futex_up(&async_futex);
     410                futex_unlock(&async_futex);
    410411                goto done;
    411412        }
     
    443444
    444445        /* Leave the async_futex locked when entering this function */
    445         fibril_switch(FIBRIL_TO_MANAGER);
    446 
    447         /* Futex is up automatically after fibril_switch */
     446        fibril_switch(FIBRIL_FROM_BLOCKED);
     447        futex_unlock(&async_futex);
    448448
    449449        if (!msg->done)
     
    475475        assert(!msg->destroyed);
    476476
    477         futex_down(&async_futex);
     477        futex_lock(&async_futex);
    478478
    479479        if (msg->done) {
     
    484484        }
    485485
    486         futex_up(&async_futex);
     486        futex_unlock(&async_futex);
    487487}
    488488
     
    504504        tv_add_diff(&awaiter.to_event.expires, timeout);
    505505
    506         futex_down(&async_futex);
     506        futex_lock(&async_futex);
    507507
    508508        async_insert_timeout(&awaiter);
    509509
    510510        /* Leave the async_futex locked when entering this function */
    511         fibril_switch(FIBRIL_TO_MANAGER);
    512 
    513         /* Futex is up automatically after fibril_switch() */
     511        fibril_switch(FIBRIL_FROM_BLOCKED);
     512        futex_unlock(&async_futex);
    514513}
    515514
Note: See TracChangeset for help on using the changeset viewer.