Changes in / [13edbac:fa2e183]
- Location:
- libcfa/src
- Files:
-
- 4 edited
-
bits/defs.hfa (modified) (1 diff)
-
concurrency/invoke.h (modified) (3 diffs)
-
concurrency/kernel.cfa (modified) (1 diff)
-
concurrency/kernel/private.hfa (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/bits/defs.hfa
r13edbac rfa2e183 30 30 #ifdef __cforall 31 31 #define __cfa_anonymous_object(x) inline struct x 32 #define __cfa_dlink 1(x)dlink(x)32 #define __cfa_dlink(x) inline dlink(x) 33 33 #else 34 34 #define __cfa_anonymous_object(x) struct x __cfa_anonymous_object 35 #define __cfa_dlink 1(x) struct { struct x * next; struct x * back; }35 #define __cfa_dlink(x) struct { struct x * next; struct x * back; } __dlink_substitute 36 36 #endif 37 37 -
libcfa/src/concurrency/invoke.h
r13edbac rfa2e183 196 196 197 197 // used to put threads on dlist data structure 198 __cfa_dlink 1(thread$) user_link;198 __cfa_dlink(thread$); 199 199 200 200 struct { … … 218 218 #endif 219 219 }; 220 220 #ifdef __cforall 221 P9_EMBEDDED( thread$, dlink(thread$) ) 222 #endif 221 223 // Wrapper for gdb 222 224 struct cfathread_thread_t { struct thread$ debug; }; … … 239 241 } 240 242 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 247 243 static inline void ?{}(__monitor_group_t & this) { 248 244 (this.data){0p}; -
libcfa/src/concurrency/kernel.cfa
r13edbac rfa2e183 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; 604 605 if( TICKET_RUNNING != thrd->ticket ) { abort( "Thread terminated with pending unpark" ); } 605 606 if( thrd != this->owner ) { abort( "Thread internal monitor has incorrect owner" ); } 606 607 if( this->recursion != 1) { abort( "Thread internal monitor has unbalanced recursion" ); } 607 608 thrd->state = Halting;609 thrd->ticket = TICKET_DEAD;610 608 611 609 // Leave the thread -
libcfa/src/concurrency/kernel/private.hfa
r13edbac rfa2e183 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 unparked169 168 170 169 //-----------------------------------------------------------------------------
Note:
See TracChangeset
for help on using the changeset viewer.