Changes in uspace/lib/c/generic/async/client.c [ab6edb6:fb0ec570] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/async/client.c
rab6edb6 rfb0ec570 121 121 #include <abi/mm/as.h> 122 122 #include "../private/libc.h" 123 #include "../private/fibril.h"124 123 125 124 /** Naming service session */ … … 191 190 } 192 191 193 194 192 /** Mutex protecting inactive_exch_list and avail_phone_cv. 195 193 * … … 243 241 assert(arg); 244 242 245 futex_ lock(&async_futex);243 futex_down(&async_futex); 246 244 247 245 amsg_t *msg = (amsg_t *) arg; … … 268 266 } 269 267 270 futex_u nlock(&async_futex);268 futex_up(&async_futex); 271 269 } 272 270 … … 357 355 amsg_t *msg = (amsg_t *) amsgid; 358 356 359 futex_ lock(&async_futex);357 futex_down(&async_futex); 360 358 361 359 assert(!msg->forget); … … 363 361 364 362 if (msg->done) { 365 futex_u nlock(&async_futex);363 futex_up(&async_futex); 366 364 goto done; 367 365 } … … 372 370 373 371 /* 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 */ 376 375 377 376 done: … … 402 401 amsg_t *msg = (amsg_t *) amsgid; 403 402 404 futex_ lock(&async_futex);403 futex_down(&async_futex); 405 404 406 405 assert(!msg->forget); … … 408 407 409 408 if (msg->done) { 410 futex_u nlock(&async_futex);409 futex_up(&async_futex); 411 410 goto done; 412 411 } … … 444 443 445 444 /* 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 */ 448 448 449 449 if (!msg->done) … … 475 475 assert(!msg->destroyed); 476 476 477 futex_ lock(&async_futex);477 futex_down(&async_futex); 478 478 479 479 if (msg->done) { … … 484 484 } 485 485 486 futex_u nlock(&async_futex);486 futex_up(&async_futex); 487 487 } 488 488 … … 504 504 tv_add_diff(&awaiter.to_event.expires, timeout); 505 505 506 futex_ lock(&async_futex);506 futex_down(&async_futex); 507 507 508 508 async_insert_timeout(&awaiter); 509 509 510 510 /* 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() */ 513 514 } 514 515
Note:
See TracChangeset
for help on using the changeset viewer.