Changes in uspace/lib/c/generic/thread.c [6aeca0d:e7267a2] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/thread.c
r6aeca0d re7267a2 46 46 #include "private/thread.h" 47 47 48 #ifdef FUTEX_UPGRADABLE49 #include <rcu.h>50 #endif51 52 53 48 /** Main thread function. 54 49 * … … 68 63 __tcb_set(fibril->tcb); 69 64 70 #ifdef FUTEX_UPGRADABLE71 rcu_register_fibril();72 futex_upgrade_all_and_wait();73 #endif74 75 65 uarg->uspace_thread_function(uarg->uspace_thread_arg); 76 66 /* … … 83 73 /* If there is a manager, destroy it */ 84 74 async_destroy_manager(); 85 86 #ifdef FUTEX_UPGRADABLE 87 rcu_deregister_fibril(); 88 #endif 89 90 fibril_teardown(fibril, false); 75 fibril_teardown(fibril); 91 76 92 77 thread_exit(0); … … 116 101 void *stack = as_area_create(AS_AREA_ANY, stack_size, 117 102 AS_AREA_READ | AS_AREA_WRITE | AS_AREA_CACHEABLE | AS_AREA_GUARD | 118 AS_AREA_LATE_RESERVE , AS_AREA_UNPAGED);103 AS_AREA_LATE_RESERVE); 119 104 if (stack == AS_MAP_FAILED) { 120 105 free(uarg); 121 106 return ENOMEM; 122 107 } 123 124 /* Make heap thread safe. */125 malloc_enable_multithreaded();126 108 127 109 uarg->uspace_entry = (void *) FADDR(__thread_entry);
Note:
See TracChangeset
for help on using the changeset viewer.