Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/libcfa/concurrency/monitor

    r0c78741 r5ea06d6  
    4646//-----------------------------------------------------------------------------
    4747// Internal scheduling
    48 
    49 struct __condition_criterion_t {
    50         bool ready;                                             //Whether or not the criterion is met (True if met)
    51         monitor_desc * target;                          //The monitor this criterion concerns
    52         struct __condition_node_t * owner;              //The parent node to which this criterion belongs
    53         __condition_criterion_t * next;         //Intrusive linked list Next field
    54 };
    55 
    56 struct __condition_node_t {
    57         thread_desc * waiting_thread;                   //Thread that needs to be woken when all criteria are met
    58         __condition_criterion_t * criteria;     //Array of criteria (Criterions are contiguous in memory)
    59         unsigned short count;                           //Number of criterions in the criteria
    60         __condition_node_t * next;                      //Intrusive linked list Next field
    61 };
    62 
    63 struct __condition_blocked_queue_t {
    64         __condition_node_t * head;
    65         __condition_node_t ** tail;
    66 };
    67 
    68 void ?{}( __condition_blocked_queue_t * );
    69 void append( __condition_blocked_queue_t *, __condition_node_t * );
    70 __condition_node_t * pop_head( __condition_blocked_queue_t * );
    71 
    7248struct condition {
    73         __condition_blocked_queue_t blocked;    //Link list which contains the blocked threads as-well as the information needed to unblock them
    74         monitor_desc ** monitors;                       //Array of monitor pointers (Monitors are NOT contiguous in memory)
    75         unsigned short monitor_count;                   //Number of monitors in the array
     49        __thread_queue_t blocked;
     50        monitor_desc ** monitors;
     51        unsigned short monitor_count;
    7652};
    7753
Note: See TracChangeset for help on using the changeset viewer.