Changes in / [fa2e183:13edbac]
- Location:
- libcfa/src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/bits/defs.hfa
rfa2e183 r13edbac 30 30 #ifdef __cforall 31 31 #define __cfa_anonymous_object(x) inline struct x 32 #define __cfa_dlink (x) inlinedlink(x)32 #define __cfa_dlink1(x) dlink(x) 33 33 #else 34 34 #define __cfa_anonymous_object(x) struct x __cfa_anonymous_object 35 #define __cfa_dlink (x) struct { struct x * next; struct x * back; } __dlink_substitute35 #define __cfa_dlink1(x) struct { struct x * next; struct x * back; } 36 36 #endif 37 37 -
libcfa/src/concurrency/invoke.h
rfa2e183 r13edbac 196 196 197 197 // used to put threads on dlist data structure 198 __cfa_dlink (thread$);198 __cfa_dlink1(thread$) user_link; 199 199 200 200 struct { … … 218 218 #endif 219 219 }; 220 #ifdef __cforall 221 P9_EMBEDDED( thread$, dlink(thread$) ) 222 #endif 220 223 221 // Wrapper for gdb 224 222 struct cfathread_thread_t { struct thread$ debug; }; … … 241 239 } 242 240 241 static inline tytagref( dlink(thread$), dlink(thread$) ) ?`inner( thread$ & this ) { 242 dlink(thread$) & b = this.user_link; 243 tytagref( dlink(thread$), dlink(thread$) ) result = { b }; 244 return result; 245 } 246 243 247 static inline void ?{}(__monitor_group_t & this) { 244 248 (this.data){0p}; -
libcfa/src/concurrency/kernel.cfa
rfa2e183 r13edbac 602 602 /* paranoid */ verifyf( ((uintptr_t)thrd->context.SP) < ((uintptr_t)__get_stack(thrd->curr_cor)->base ), "ERROR : thread$ %p has been corrupted.\n StackPointer too small.\n", thrd ); 603 603 604 thrd->state = Halting;605 604 if( TICKET_RUNNING != thrd->ticket ) { abort( "Thread terminated with pending unpark" ); } 606 605 if( thrd != this->owner ) { abort( "Thread internal monitor has incorrect owner" ); } 607 606 if( this->recursion != 1) { abort( "Thread internal monitor has unbalanced recursion" ); } 607 608 thrd->state = Halting; 609 thrd->ticket = TICKET_DEAD; 608 610 609 611 // Leave the thread -
libcfa/src/concurrency/kernel/private.hfa
rfa2e183 r13edbac 166 166 #define TICKET_RUNNING ( 0) // thread is running 167 167 #define TICKET_UNBLOCK ( 1) // thread should ignore next block 168 #define TICKET_DEAD (0xDEAD) // thread should never be unparked 168 169 169 170 //-----------------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.