Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/libcfa/concurrency/kernel

    r09800e9 ra1a17a74  
    4343extern struct cluster * mainCluster;
    4444
    45 enum FinishOpCode { No_Action, Release, Schedule, Release_Schedule, Release_Multi, Release_Multi_Schedule, Callback };
    46 
    47 typedef void (*__finish_callback_fptr_t)(void);
     45enum FinishOpCode { No_Action, Release, Schedule, Release_Schedule, Release_Multi, Release_Multi_Schedule };
    4846
    4947//TODO use union, many of these fields are mutually exclusive (i.e. MULTI vs NOMULTI)
    5048struct FinishAction {
    5149        FinishOpCode action_code;
    52         /*
    53         // Union of possible actions
    54         union {
    55                 // Option 1 : locks and threads
    56                 struct {
    57                         // 1 thread or N thread
    58                         union {
    59                                 thread_desc * thrd;
    60                                 struct {
    61                                         thread_desc ** thrds;
    62                                         unsigned short thrd_count;
    63                                 };
    64                         };
    65                         // 1 lock or N lock
    66                         union {
    67                                 __spinlock_t * lock;
    68                                 struct {
    69                                         __spinlock_t ** locks;
    70                                         unsigned short lock_count;
    71                                 };
    72                         };
    73                 };
    74                 // Option 2 : action pointer
    75                 __finish_callback_fptr_t callback;
    76         };
    77         /*/
    7850        thread_desc * thrd;
    79         thread_desc ** thrds;
    80         unsigned short thrd_count;
    8151        __spinlock_t * lock;
    8252        __spinlock_t ** locks;
    8353        unsigned short lock_count;
    84         __finish_callback_fptr_t callback;
    85         //*/
     54        thread_desc ** thrds;
     55        unsigned short thrd_count;
    8656};
    8757static inline void ?{}(FinishAction & this) {
Note: See TracChangeset for help on using the changeset viewer.