- File:
-
- 1 edited
-
src/libcfa/concurrency/invoke.h (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/libcfa/concurrency/invoke.h
rde94a60 r4c1b48f3 18 18 #include "bits/locks.h" 19 19 20 #define TL_GET( member ) kernelT LS.member21 #define TL_SET( member, value ) kernelT LS.member = value;20 #define TL_GET( member ) kernelThreadData.member 21 #define TL_SET( member, value ) kernelThreadData.member = value; 22 22 23 23 #ifdef __cforall … … 44 44 volatile bool in_progress; 45 45 } preemption_state; 46 } kernelT LS;46 } kernelThreadData; 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 ); } // UNSAFE50 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 ); } 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 running129 struct cluster * curr_cluster;130 131 128 // monitors currently held by this thread 132 129 struct __monitor_group_t monitors; … … 136 133 struct thread_desc * next; 137 134 138 struct { 139 struct thread_desc * next; 140 struct thread_desc * prev; 141 } node; 135 __cfaabi_dbg_debug_do( 136 // instrusive link field for debugging 137 struct thread_desc * dbg_next; 138 struct thread_desc * dbg_prev; 139 ) 142 140 }; 143 141 … … 146 144 static inline thread_desc * & get_next( thread_desc & this ) { 147 145 return this.next; 148 }149 150 static inline [thread_desc *&, thread_desc *& ] __get( thread_desc & this ) {151 return this.node.[next, prev];152 146 } 153 147
Note:
See TracChangeset
for help on using the changeset viewer.