- File:
-
- 1 edited
-
libcfa/src/concurrency/kernel/startup.cfa (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/kernel/startup.cfa
r1bcbf02 rb035046 113 113 KERNEL_STORAGE(thread$, mainThread); 114 114 KERNEL_STORAGE(__stack_t, mainThreadCtx); 115 //KERNEL_STORAGE(__scheduler_RWLock_t, __scheduler_lock);115 KERNEL_STORAGE(__scheduler_RWLock_t, __scheduler_lock); 116 116 KERNEL_STORAGE(eventfd_t, mainIdleEventFd); 117 117 KERNEL_STORAGE(io_future_t, mainIdleFuture); … … 123 123 processor * mainProcessor; 124 124 thread$ * mainThread; 125 __scheduler_RWLock_t * __scheduler_lock; 125 126 126 127 extern "C" { … … 133 134 //----------------------------------------------------------------------------- 134 135 // Global state 135 __threadstruct KernelThreadData __cfaabi_tls __attribute__ ((tls_model ( "initial-exec" ))) @= {136 thread_local struct KernelThreadData __cfaabi_tls __attribute__ ((tls_model ( "initial-exec" ))) @= { 136 137 NULL, // cannot use 0p 137 138 NULL, … … 147 148 }; 148 149 149 __scheduler_RWLock_t __scheduler_lock @= { 0 };150 151 150 #if defined(CFA_HAVE_LINUX_LIBRSEQ) 152 151 // No data needed 153 152 #elif defined(CFA_HAVE_LINUX_RSEQ_H) 154 153 extern "Cforall" { 155 __attribute__((aligned( 64))) __threadvolatile struct rseq __cfaabi_rseq @= {154 __attribute__((aligned(128))) thread_local volatile struct rseq __cfaabi_rseq @= { 156 155 .cpu_id : RSEQ_CPU_ID_UNINITIALIZED, 157 156 }; … … 199 198 200 199 // Initialize the global scheduler lock 201 //__scheduler_lock = (__scheduler_RWLock_t*)&storage___scheduler_lock;202 ( __scheduler_lock){};200 __scheduler_lock = (__scheduler_RWLock_t*)&storage___scheduler_lock; 201 (*__scheduler_lock){}; 203 202 204 203 // Initialize the main cluster … … 337 336 ^(*mainCluster){}; 338 337 339 ^( __scheduler_lock){};338 ^(*__scheduler_lock){}; 340 339 341 340 ^(__cfa_dbg_global_clusters.list){};
Note:
See TracChangeset
for help on using the changeset viewer.