Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • tests/concurrency/actors/dynamic.cfa

    r77fd9fe2 r7edf912  
    99struct derived_actor { inline actor; };
    1010struct derived_msg {
    11     inline message;
    12     int cnt;
     11        inline message;
     12        int cnt;
    1313};
    1414
    1515void ?{}( derived_msg & this, int cnt ) {
    16     ((message &) this){ Delete };
    17     this.cnt = cnt;
     16        set_allocation( this, Delete );
     17        this.cnt = cnt;
    1818}
    1919void ?{}( derived_msg & this ) { ((derived_msg &)this){ 0 }; }
    2020
    2121allocation receive( derived_actor & receiver, derived_msg & msg ) {
    22     if ( msg.cnt >= Times ) {
    23         sout | "Done";
    24         return Delete;
    25     }
    26     derived_msg * d_msg = alloc();
    27     (*d_msg){ msg.cnt + 1 };
    28     derived_actor * d_actor = alloc();
    29     (*d_actor){};
    30     *d_actor | *d_msg;
    31     return Delete;
     22        if ( msg.cnt >= Times ) {
     23                sout | "Done";
     24                return Delete;
     25        }
     26        derived_msg * d_msg = alloc();
     27        (*d_msg){ msg.cnt + 1 };
     28        derived_actor * d_actor = alloc();
     29        (*d_actor){};
     30        *d_actor | *d_msg;
     31        return Delete;
    3232}
    3333
    3434int main( int argc, char * argv[] ) {
    35     switch ( argc ) {
     35        switch ( argc ) {
    3636          case 2:
    3737                if ( strcmp( argv[1], "d" ) != 0 ) {                    // default ?
    38                         Times = atoi( argv[1] );
    39                         if ( Times < 1 ) goto Usage;
     38                        Times = ato( argv[1] );
     39                        if ( Times < 1 ) fallthru default;
    4040                } // if
    4141          case 1:                                                                                       // use defaults
    4242                break;
    4343          default:
    44           Usage:
    45                 sout | "Usage: " | argv[0] | " [ times (> 0) ]";
    46                 exit( EXIT_FAILURE );
     44                exit | "Usage: " | argv[0] | " [ times (> 0) ]";
    4745        } // switch
    4846
    49     printf("starting\n");
     47        sout | "starting";
    5048
    51     executor e{ 0, 1, 1, false };
    52     start_actor_system( e );
     49        executor e{ 0, 1, 1, false };
     50        start_actor_system( e );
    5351
    54     printf("started\n");
     52        sout | "started";
    5553
    56     derived_msg * d_msg = alloc();
    57     (*d_msg){};
    58     derived_actor * d_actor = alloc();
    59     (*d_actor){};
    60     *d_actor | *d_msg;
     54        derived_msg * d_msg = alloc();
     55        (*d_msg){};
     56        derived_actor * d_actor = alloc();
     57        (*d_actor){};
     58        *d_actor | *d_msg;
    6159
    62     printf("stopping\n");
     60        sout | "stopping";
    6361
    64     stop_actor_system();
     62        stop_actor_system();
    6563
    66     printf("stopped\n");
    67 
    68     return 0;
     64        sout | "stopped";
    6965}
Note: See TracChangeset for help on using the changeset viewer.