Changes in / [13edbac:fa2e183]


Ignore:
Location:
libcfa/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/bits/defs.hfa

    r13edbac rfa2e183  
    3030#ifdef __cforall
    3131#define __cfa_anonymous_object(x) inline struct x
    32 #define __cfa_dlink1(x) dlink(x)
     32#define __cfa_dlink(x) inline dlink(x)
    3333#else
    3434#define __cfa_anonymous_object(x) struct x __cfa_anonymous_object
    35 #define __cfa_dlink1(x) struct { struct x * next; struct x * back; }
     35#define __cfa_dlink(x) struct { struct x * next; struct x * back; } __dlink_substitute
    3636#endif
    3737
  • libcfa/src/concurrency/invoke.h

    r13edbac rfa2e183  
    196196
    197197                // used to put threads on dlist data structure
    198                 __cfa_dlink1(thread$) user_link;
     198                __cfa_dlink(thread$);
    199199
    200200                struct {
     
    218218                #endif
    219219        };
    220 
     220        #ifdef __cforall
     221                P9_EMBEDDED( thread$, dlink(thread$) )
     222        #endif
    221223        // Wrapper for gdb
    222224        struct cfathread_thread_t { struct thread$ debug; };
     
    239241                }
    240242
    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 
    247243                static inline void ?{}(__monitor_group_t & this) {
    248244                        (this.data){0p};
  • libcfa/src/concurrency/kernel.cfa

    r13edbac rfa2e183  
    602602                /* 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 );
    603603
     604                thrd->state = Halting;
    604605                if( TICKET_RUNNING != thrd->ticket ) { abort( "Thread terminated with pending unpark" ); }
    605606                if( thrd != this->owner ) { abort( "Thread internal monitor has incorrect owner" ); }
    606607                if( this->recursion != 1) { abort( "Thread internal monitor has unbalanced recursion" ); }
    607 
    608                 thrd->state = Halting;
    609                 thrd->ticket = TICKET_DEAD;
    610608
    611609                // Leave the thread
  • libcfa/src/concurrency/kernel/private.hfa

    r13edbac rfa2e183  
    166166#define TICKET_RUNNING ( 0) // thread is running
    167167#define TICKET_UNBLOCK ( 1) // thread should ignore next block
    168 #define TICKET_DEAD    (0xDEAD) // thread should never be unparked
    169168
    170169//-----------------------------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.