Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/concurrency/invoke.h

    r24e321c r1f45c7d  
    7171        enum __Coroutine_State { Halted, Start, Primed, Blocked, Ready, Active, Cancelled, Halting };
    7272
    73         struct coroutine$ {
     73        struct $coroutine {
    7474                // context that is switch during a __cfactx_switch
    7575                struct __stack_context_t context;
     
    8585
    8686                // first coroutine to resume this one
    87                 struct coroutine$ * starter;
     87                struct $coroutine * starter;
    8888
    8989                // last coroutine to resume this one
    90                 struct coroutine$ * last;
     90                struct $coroutine * last;
    9191
    9292                // If non-null stack must be unwound with this exception
     
    9595        };
    9696        // Wrapper for gdb
    97         struct cfathread_coroutine_t { struct coroutine$ debug; };
    98 
    99         static inline struct __stack_t * __get_stack( struct coroutine$ * cor ) {
     97        struct cfathread_coroutine_t { struct $coroutine debug; };
     98
     99        static inline struct __stack_t * __get_stack( struct $coroutine * cor ) {
    100100                return (struct __stack_t*)(((uintptr_t)cor->stack.storage) & ((uintptr_t)-2));
    101101        }
     
    110110        };
    111111
    112         struct monitor$ {
     112        struct $monitor {
    113113                // spinlock to protect internal data
    114114                struct __spinlock_t lock;
    115115
    116116                // current owner of the monitor
    117                 struct thread$ * owner;
     117                struct $thread * owner;
    118118
    119119                // queue of threads that are blocked waiting for the monitor
    120                 __queue_t(struct thread$) entry_queue;
     120                __queue_t(struct $thread) entry_queue;
    121121
    122122                // stack of conditions to run next once we exit the monitor
     
    133133        };
    134134        // Wrapper for gdb
    135         struct cfathread_monitor_t { struct monitor$ debug; };
     135        struct cfathread_monitor_t { struct $monitor debug; };
    136136
    137137        struct __monitor_group_t {
    138138                // currently held monitors
    139                 __cfa_anonymous_object( __small_array_t(monitor$*) );
     139                __cfa_anonymous_object( __small_array_t($monitor*) );
    140140
    141141                // last function that acquired monitors
     
    146146        // instrusive link field for threads
    147147        struct __thread_desc_link {
    148                 struct thread$ * next;
     148                struct $thread * next;
    149149                volatile unsigned long long ts;
    150150        };
    151151
    152         struct thread$ {
     152        struct $thread {
    153153                // Core threading fields
    154154                // context that is switch during a __cfactx_switch
     
    170170                bool corctx_flag;
    171171
     172                int last_cpu;
     173
    172174                //SKULLDUGGERY errno is not save in the thread data structure because returnToKernel appears to be the only function to require saving and restoring it
    173175
     
    175177                struct cluster * curr_cluster;
    176178
    177                 // preferred ready-queue or CPU
     179                // preferred ready-queue
    178180                unsigned preferred;
    179181
    180182                // coroutine body used to store context
    181                 struct coroutine$  self_cor;
     183                struct $coroutine  self_cor;
    182184
    183185                // current active context
    184                 struct coroutine$ * curr_cor;
     186                struct $coroutine * curr_cor;
    185187
    186188                // monitor body used for mutual exclusion
    187                 struct monitor$    self_mon;
     189                struct $monitor    self_mon;
    188190
    189191                // pointer to monitor with sufficient lifetime for current monitors
    190                 struct monitor$ *  self_mon_p;
     192                struct $monitor *  self_mon_p;
    191193
    192194                // monitors currently held by this thread
     
    195197                // used to put threads on user data structures
    196198                struct {
    197                         struct thread$ * next;
    198                         struct thread$ * back;
     199                        struct $thread * next;
     200                        struct $thread * back;
    199201                } seqable;
    200202
    201203                // used to put threads on dlist data structure
    202                 __cfa_dlink(thread$);
     204                __cfa_dlink($thread);
    203205
    204206                struct {
    205                         struct thread$ * next;
    206                         struct thread$ * prev;
     207                        struct $thread * next;
     208                        struct $thread * prev;
    207209                } node;
    208210
     
    214216        };
    215217        #ifdef __cforall
    216                 P9_EMBEDDED( thread$, dlink(thread$) )
     218                P9_EMBEDDED( $thread, dlink($thread) )
    217219        #endif
    218220        // Wrapper for gdb
    219         struct cfathread_thread_t { struct thread$ debug; };
     221        struct cfathread_thread_t { struct $thread debug; };
    220222
    221223        #ifdef __CFA_DEBUG__
    222                 void __cfaabi_dbg_record_thrd(thread$ & this, bool park, const char prev_name[]);
     224                void __cfaabi_dbg_record_thrd($thread & this, bool park, const char prev_name[]);
    223225        #else
    224226                #define __cfaabi_dbg_record_thrd(x, y, z)
     
    228230        extern "Cforall" {
    229231
    230                 static inline thread$ *& get_next( thread$ & this ) __attribute__((const)) {
     232                static inline $thread *& get_next( $thread & this ) __attribute__((const)) {
    231233                        return this.link.next;
    232234                }
    233235
    234                 static inline [thread$ *&, thread$ *& ] __get( thread$ & this ) __attribute__((const)) {
     236                static inline [$thread *&, $thread *& ] __get( $thread & this ) __attribute__((const)) {
    235237                        return this.node.[next, prev];
    236238                }
    237239
    238                 static inline thread$ * volatile & ?`next ( thread$ * this )  __attribute__((const)) {
     240                static inline $thread * volatile & ?`next ( $thread * this )  __attribute__((const)) {
    239241                        return this->seqable.next;
    240242                }
    241243
    242                 static inline thread$ *& Back( thread$ * this ) __attribute__((const)) {
     244                static inline $thread *& Back( $thread * this ) __attribute__((const)) {
    243245                        return this->seqable.back;
    244246                }
    245247
    246                 static inline thread$ *& Next( thread$ * this ) __attribute__((const)) {
     248                static inline $thread *& Next( $thread * this ) __attribute__((const)) {
    247249                                return this->seqable.next;
    248250                }
    249251
    250                 static inline bool listed( thread$ * this ) {
     252                static inline bool listed( $thread * this ) {
    251253                        return this->seqable.next != 0p;
    252254                }
     
    258260                }
    259261
    260                 static inline void ?{}(__monitor_group_t & this, struct monitor$ ** data, __lock_size_t size, fptr_t func) {
     262                static inline void ?{}(__monitor_group_t & this, struct $monitor ** data, __lock_size_t size, fptr_t func) {
    261263                        (this.data){data};
    262264                        (this.size){size};
Note: See TracChangeset for help on using the changeset viewer.