Ignore:
File:
1 edited

Legend:

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

    rab6edb6 rfb0ec570  
    121121#include <abi/mm/as.h>
    122122#include "../private/libc.h"
    123 #include "../private/fibril.h"
    124123
    125124/** Naming service session */
     
    191190}
    192191
    193 
    194192/** Mutex protecting inactive_exch_list and avail_phone_cv.
    195193 *
     
    243241        assert(arg);
    244242
    245         futex_lock(&async_futex);
     243        futex_down(&async_futex);
    246244
    247245        amsg_t *msg = (amsg_t *) arg;
     
    268266        }
    269267
    270         futex_unlock(&async_futex);
     268        futex_up(&async_futex);
    271269}
    272270
     
    357355        amsg_t *msg = (amsg_t *) amsgid;
    358356
    359         futex_lock(&async_futex);
     357        futex_down(&async_futex);
    360358
    361359        assert(!msg->forget);
     
    363361
    364362        if (msg->done) {
    365                 futex_unlock(&async_futex);
     363                futex_up(&async_futex);
    366364                goto done;
    367365        }
     
    372370
    373371        /* Leave the async_futex locked when entering this function */
    374         fibril_switch(FIBRIL_FROM_BLOCKED);
    375         futex_unlock(&async_futex);
     372        fibril_switch(FIBRIL_TO_MANAGER);
     373
     374        /* Futex is up automatically after fibril_switch */
    376375
    377376done:
     
    402401        amsg_t *msg = (amsg_t *) amsgid;
    403402
    404         futex_lock(&async_futex);
     403        futex_down(&async_futex);
    405404
    406405        assert(!msg->forget);
     
    408407
    409408        if (msg->done) {
    410                 futex_unlock(&async_futex);
     409                futex_up(&async_futex);
    411410                goto done;
    412411        }
     
    444443
    445444        /* Leave the async_futex locked when entering this function */
    446         fibril_switch(FIBRIL_FROM_BLOCKED);
    447         futex_unlock(&async_futex);
     445        fibril_switch(FIBRIL_TO_MANAGER);
     446
     447        /* Futex is up automatically after fibril_switch */
    448448
    449449        if (!msg->done)
     
    475475        assert(!msg->destroyed);
    476476
    477         futex_lock(&async_futex);
     477        futex_down(&async_futex);
    478478
    479479        if (msg->done) {
     
    484484        }
    485485
    486         futex_unlock(&async_futex);
     486        futex_up(&async_futex);
    487487}
    488488
     
    504504        tv_add_diff(&awaiter.to_event.expires, timeout);
    505505
    506         futex_lock(&async_futex);
     506        futex_down(&async_futex);
    507507
    508508        async_insert_timeout(&awaiter);
    509509
    510510        /* Leave the async_futex locked when entering this function */
    511         fibril_switch(FIBRIL_FROM_BLOCKED);
    512         futex_unlock(&async_futex);
     511        fibril_switch(FIBRIL_TO_MANAGER);
     512
     513        /* Futex is up automatically after fibril_switch() */
    513514}
    514515
Note: See TracChangeset for help on using the changeset viewer.