Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/libcfa/concurrency/kernel

    r025278e r6b0b624  
    2626//-----------------------------------------------------------------------------
    2727// Locks
    28 // Lock the spinlock, spin if already acquired
    29 void lock      ( spinlock * DEBUG_CTX_PARAM2 );
    30 
    31 // Lock the spinlock, yield repeatedly if already acquired
    32 void lock_yield( spinlock * DEBUG_CTX_PARAM2 );
    33 
    34 // Lock the spinlock, return false if already acquired
    35 bool try_lock  ( spinlock * DEBUG_CTX_PARAM2 );
    36 
    37 // Unlock the spinlock
    38 void unlock    ( spinlock * );
     28void lock      ( spinlock * DEBUG_CTX_PARAM2 );       // Lock the spinlock, spin if already acquired
     29void lock_yield( spinlock * DEBUG_CTX_PARAM2 );       // Lock the spinlock, yield repeatedly if already acquired
     30bool try_lock  ( spinlock * DEBUG_CTX_PARAM2 );       // Lock the spinlock, return false if already acquired
     31void unlock    ( spinlock * );                        // Unlock the spinlock
    3932
    4033struct semaphore {
     
    4437};
    4538
    46 void  ?{}(semaphore & this, int count = 1);
    47 void ^?{}(semaphore & this);
    48 void   P (semaphore & this);
    49 void   V (semaphore & this);
     39void  ?{}(semaphore * this, int count = 1);
     40void ^?{}(semaphore * this);
     41void P(semaphore * this);
     42void V(semaphore * this);
    5043
    5144
     
    5346// Cluster
    5447struct cluster {
    55         // Ready queue locks
    56         spinlock ready_queue_lock;
    57 
    58         // Ready queue for threads
    59         __thread_queue_t ready_queue;
    60 
    61         // Preemption rate on this cluster
    62         unsigned long long int preemption;
     48        spinlock ready_queue_lock;                      // Ready queue locks
     49        __thread_queue_t ready_queue;                   // Ready queue for threads
     50        unsigned long long int preemption;              // Preemption rate on this cluster
    6351};
    6452
    65 void ?{} (cluster & this);
    66 void ^?{}(cluster & this);
     53void ?{}(cluster * this);
     54void ^?{}(cluster * this);
    6755
    6856//-----------------------------------------------------------------------------
     
    8068        unsigned short thrd_count;
    8169};
    82 static inline void ?{}(FinishAction & this) {
    83         this.action_code = No_Action;
    84         this.thrd = NULL;
    85         this.lock = NULL;
     70static inline void ?{}(FinishAction * this) {
     71        this->action_code = No_Action;
     72        this->thrd = NULL;
     73        this->lock = NULL;
    8674}
    87 static inline void ^?{}(FinishAction & this) {}
     75static inline void ^?{}(FinishAction * this) {}
    8876
    8977// Processor
     
    9179struct processor {
    9280        // Main state
    93         // Coroutine ctx who does keeps the state of the processor
    94         struct processorCtx_t * runner;
    95 
    96         // Cluster from which to get threads
    97         cluster * cltr;
    98 
    99         // Handle to pthreads
    100         pthread_t kernel_thread;
     81        struct processorCtx_t * runner;                 // Coroutine ctx who does keeps the state of the processor
     82        cluster * cltr;                                 // Cluster from which to get threads
     83        pthread_t kernel_thread;                        // Handle to pthreads
    10184
    10285        // Termination
    103         // Set to true to notify the processor should terminate
    104         volatile bool do_terminate;
    105 
    106         // Termination synchronisation
    107         semaphore terminated;
     86        volatile bool do_terminate;                     // Set to true to notify the processor should terminate
     87        semaphore terminated;                           // Termination synchronisation
    10888
    10989        // RunThread data
    110         // Action to do after a thread is ran
    111         struct FinishAction finish;
     90        struct FinishAction finish;                     // Action to do after a thread is ran
    11291
    11392        // Preemption data
    114         // Node which is added in the discrete event simulaiton
    115         struct alarm_node_t * preemption_alarm;
    116 
    117         // If true, a preemption was triggered in an unsafe region, the processor must preempt as soon as possible
    118         bool pending_preemption;
     93        struct alarm_node_t * preemption_alarm;         // Node which is added in the discrete event simulaiton
     94        bool pending_preemption;                        // If true, a preemption was triggered in an unsafe region, the processor must preempt as soon as possible
    11995
    12096#ifdef __CFA_DEBUG__
    121         // Last function to enable preemption on this processor
    122         char * last_enable;
     97        char * last_enable;                             // Last function to enable preemption on this processor
    12398#endif
    12499};
    125100
    126 void  ?{}(processor & this);
    127 void  ?{}(processor & this, cluster * cltr);
    128 void ^?{}(processor & this);
     101void ?{}(processor * this);
     102void ?{}(processor * this, cluster * cltr);
     103void ^?{}(processor * this);
    129104
    130105// Local Variables: //
Note: See TracChangeset for help on using the changeset viewer.