Changes in / [0453261:b5143bd] in mainline
- Location:
- uspace/lib/c
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/fibril.c
r0453261 rb5143bd 57 57 /** 58 58 * This futex serializes access to ready_list, 59 * serialized_list , manager_list and fibril_list.59 * serialized_list and manager_list. 60 60 */ 61 61 static futex_t fibril_futex = FUTEX_INITIALIZER; … … 126 126 127 127 fibril->waits_for = NULL; 128 129 futex_lock(&fibril_futex);130 128 list_append(&fibril->all_link, &fibril_list); 131 futex_unlock(&fibril_futex);132 129 133 130 return fibril; 134 131 } 135 132 136 void fibril_teardown(fibril_t *fibril, bool locked) 137 { 138 if (!locked) 139 futex_lock(&fibril_futex); 133 void fibril_teardown(fibril_t *fibril) 134 { 140 135 list_remove(&fibril->all_link); 141 if (!locked)142 futex_unlock(&fibril_futex);143 136 tls_free(fibril->tcb); 144 137 free(fibril); … … 215 208 as_area_destroy(stack); 216 209 } 217 fibril_teardown(srcf->clean_after_me , true);210 fibril_teardown(srcf->clean_after_me); 218 211 srcf->clean_after_me = NULL; 219 212 } … … 301 294 AS_AREA_LATE_RESERVE); 302 295 if (fibril->stack == (void *) -1) { 303 fibril_teardown(fibril , false);296 fibril_teardown(fibril); 304 297 return 0; 305 298 } … … 328 321 329 322 as_area_destroy(fibril->stack); 330 fibril_teardown(fibril , false);323 fibril_teardown(fibril); 331 324 } 332 325 -
uspace/lib/c/generic/libc.c
r0453261 rb5143bd 122 122 __stdio_done(); 123 123 task_retval(status); 124 fibril_teardown(__tcb_get()->fibril_data , false);124 fibril_teardown(__tcb_get()->fibril_data); 125 125 } 126 126 -
uspace/lib/c/generic/thread.c
r0453261 rb5143bd 88 88 #endif 89 89 90 fibril_teardown(fibril , false);90 fibril_teardown(fibril); 91 91 92 92 thread_exit(0); -
uspace/lib/c/include/fibril.h
r0453261 rb5143bd 94 94 extern void fibril_destroy(fid_t fid); 95 95 extern fibril_t *fibril_setup(void); 96 extern void fibril_teardown(fibril_t *f , bool locked);96 extern void fibril_teardown(fibril_t *f); 97 97 extern int fibril_switch(fibril_switch_type_t stype); 98 98 extern void fibril_add_ready(fid_t fid);
Note:
See TracChangeset
for help on using the changeset viewer.