Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/tests/sched-ext-dtor.c

    rca278c1 rb8116cd  
    1414static const unsigned long N = 5_000ul;
    1515
    16 enum state_t {
    17         CTOR,
    18         MAIN,
    19         AFTER,
    20         END,
    21         DTOR
    22 };
    23 
    24 thread dummy_t {
    25         state_t state;
    26 };
    27 
    28 static inline void set_state( dummy_t & this, state_t state) {
    29         switch(state) {
    30                 case CTOR  : break;
    31                 case MAIN  : if( this.state != CTOR  ) { serr | "ERROR Expected state to be CTOR"  | endl; abort(); } this.state = state; break;
    32                 case AFTER : if( this.state != MAIN  ) { serr | "ERROR Expected state to be MAIN"  | endl; abort(); } this.state = state; break;
    33                 case END   : if( this.state != AFTER ) { serr | "ERROR Expected state to be AFTER" | endl; abort(); } this.state = state; break;
    34                 case DTOR  : if( this.state != END   ) { serr | "ERROR Expected state to be END"   | endl; abort(); } this.state = state; break;
    35         }
    36 }
     16thread dummy_t {};
    3717
    3818void ^?{}( dummy_t & mutex this ) {
    39         set_state( this, DTOR );
    40 }
    41 
    42 void ?{}( dummy_t & this ) {
    43         this.state = CTOR;
     19        sout | "Dtor" | endl;
    4420}
    4521
    4622void main( dummy_t & this ) {
    4723        yield(((unsigned)rand48()) % 10);
    48         set_state( this, MAIN );
     24        sout | "Main";
    4925        waitfor( ^?{}, this ) {
    50                 set_state( this, AFTER );
     26                sout | "After waitfor";
    5127        }
    52         set_state( this, END );
     28        sout | "Ending Main";
    5329}
    5430
     
    5733        processor p;
    5834        for( int i = 0; i < N; i++ ){
    59                 dummy_t dummy[4];
     35                dummy_t dummy;
    6036                yield( ((unsigned)rand48()) % 100 );
    6137        }
Note: See TracChangeset for help on using the changeset viewer.