Changeset df7cbc6 in mainline for uspace/lib/c/generic/fibril.c
- Timestamp:
- 2012-12-04T16:54:39Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 87179ca
- Parents:
- b188002
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/fibril.c
rb188002 rdf7cbc6 51 51 #include <futex.h> 52 52 53 #ifdef FUTEX_UPGRADABLE53 #ifdef futex_unlockGRADABLE 54 54 #include <rcu.h> 55 55 #endif … … 88 88 fibril_t *fibril = __tcb_get()->fibril_data; 89 89 90 #ifdef FUTEX_UPGRADABLE90 #ifdef futex_unlockGRADABLE 91 91 rcu_register_fibril(); 92 92 #endif … … 152 152 int retval = 0; 153 153 154 futex_ down(&fibril_futex);154 futex_lock(&fibril_futex); 155 155 156 156 if (stype == FIBRIL_PREEMPT && list_empty(&ready_list)) … … 174 174 if ((stype == FIBRIL_TO_MANAGER) || (stype == FIBRIL_FROM_DEAD)) { 175 175 while (list_empty(&manager_list)) { 176 futex_u p(&fibril_futex);176 futex_unlock(&fibril_futex); 177 177 async_create_manager(); 178 futex_ down(&fibril_futex);178 futex_lock(&fibril_futex); 179 179 } 180 180 } … … 209 209 } 210 210 211 return 1; /* futex_u palready done here */211 return 1; /* futex_unlock already done here */ 212 212 } 213 213 … … 252 252 list_remove(&dstf->link); 253 253 254 futex_u p(&fibril_futex);255 256 #ifdef FUTEX_UPGRADABLE254 futex_unlock(&fibril_futex); 255 256 #ifdef futex_unlockGRADABLE 257 257 if (stype == FIBRIL_FROM_DEAD) { 258 258 rcu_deregister_fibril(); … … 264 264 265 265 ret_0: 266 futex_u p(&fibril_futex);266 futex_unlock(&fibril_futex); 267 267 return retval; 268 268 } … … 329 329 fibril_t *fibril = (fibril_t *) fid; 330 330 331 futex_ down(&fibril_futex);331 futex_lock(&fibril_futex); 332 332 333 333 if ((fibril->flags & FIBRIL_SERIALIZED)) … … 336 336 list_append(&fibril->link, &ready_list); 337 337 338 futex_u p(&fibril_futex);338 futex_unlock(&fibril_futex); 339 339 } 340 340 … … 349 349 fibril_t *fibril = (fibril_t *) fid; 350 350 351 futex_ down(&fibril_futex);351 futex_lock(&fibril_futex); 352 352 list_append(&fibril->link, &manager_list); 353 futex_u p(&fibril_futex);353 futex_unlock(&fibril_futex); 354 354 } 355 355 … … 357 357 void fibril_remove_manager(void) 358 358 { 359 futex_ down(&fibril_futex);359 futex_lock(&fibril_futex); 360 360 361 361 if (!list_empty(&manager_list)) 362 362 list_remove(list_first(&manager_list)); 363 363 364 futex_u p(&fibril_futex);364 futex_unlock(&fibril_futex); 365 365 } 366 366
Note:
See TracChangeset
for help on using the changeset viewer.