Ignore:
File:
1 edited

Legend:

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

    r9c31349 r17af7d1  
    3838      };
    3939
     40      struct signal_once {
     41            volatile bool condition;
     42            struct spinlock lock;
     43            struct simple_thread_list blocked;
     44      };
     45
    4046      #ifdef __CFORALL__
    4147      extern "Cforall" {
     
    4652            void ?{}(spinlock * this);
    4753            void ^?{}(spinlock * this);
     54
     55            void ?{}(signal_once * this);
     56            void ^?{}(signal_once * this);
    4857      }
    4958      #endif
     
    7079      };
    7180
    72       struct monitor_desc {
    73             struct spinlock lock;
    74             struct thread_desc * owner;
    75             struct simple_thread_list entry_queue;
    76             unsigned int recursion;
    77       };
    78 
    7981      struct thread_desc {
    80             struct coroutine_desc cor;          // coroutine body used to store context
    81             struct monitor_desc mon;            // monitor body used for mutual exclusion
     82            struct coroutine_desc cor;            // coroutine body used to store context
     83            struct signal_once terminated;      // indicate if execuation state is not halted
    8284            struct thread_desc * next;          // instrusive link field for threads
    8385      };
Note: See TracChangeset for help on using the changeset viewer.