- File:
-
- 1 edited
-
src/libcfa/concurrency/invoke.h (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/libcfa/concurrency/invoke.h
r4c1b48f3 rde94a60 18 18 #include "bits/locks.h" 19 19 20 #define TL_GET( member ) kernelT hreadData.member21 #define TL_SET( member, value ) kernelT hreadData.member = value;20 #define TL_GET( member ) kernelTLS.member 21 #define TL_SET( member, value ) kernelTLS.member = value; 22 22 23 23 #ifdef __cforall … … 44 44 volatile bool in_progress; 45 45 } preemption_state; 46 } kernelT hreadData;46 } kernelTLS; 47 47 } 48 48 49 49 static inline struct coroutine_desc * volatile active_coroutine() { return TL_GET( this_coroutine ); } 50 static inline struct thread_desc * volatile active_thread() { return TL_GET( this_thread); }51 static inline struct processor * volatile active_processor() { return TL_GET( this_processor ); }50 static inline struct thread_desc * volatile active_thread () { return TL_GET( this_thread ); } 51 static inline struct processor * volatile active_processor() { return TL_GET( this_processor ); } // UNSAFE 52 52 #endif 53 53 … … 126 126 struct monitor_desc * self_mon_p; 127 127 128 // pointer to the cluster on which the thread is running 129 struct cluster * curr_cluster; 130 128 131 // monitors currently held by this thread 129 132 struct __monitor_group_t monitors; … … 133 136 struct thread_desc * next; 134 137 135 __cfaabi_dbg_debug_do( 136 // instrusive link field for debugging 137 struct thread_desc * dbg_next; 138 struct thread_desc * dbg_prev; 139 ) 138 struct { 139 struct thread_desc * next; 140 struct thread_desc * prev; 141 } node; 140 142 }; 141 143 … … 144 146 static inline thread_desc * & get_next( thread_desc & this ) { 145 147 return this.next; 148 } 149 150 static inline [thread_desc *&, thread_desc *& ] __get( thread_desc & this ) { 151 return this.node.[next, prev]; 146 152 } 147 153
Note:
See TracChangeset
for help on using the changeset viewer.