Untitled

 avatar
unknown
plain_text
3 years ago
2.8 kB
5
Indexable
void test1(){
    /* 
        passengers 1-4:
        2 LR at time 0 
        2 RL at time 1
        result : first 2 LR cross then 2 RL cross

        passengers 5-8:
        2 RL at time 4
        2 LR at time 5
        result : first 2 RL cross then 2 LR cross        
    */
    vip_time=2; 
    pthread_t threads[8];
    // test LR first
    int id=0;
    pthread_create(&threads[id], NULL, vip_LR, (void*) new Passenger(id+1));
    id++;
    pthread_create(&threads[id], NULL, vip_LR, (void*) new Passenger(id+1));
    sleep(1);
    id++;
    pthread_create(&threads[id], NULL, vip_RL, (void*) new Passenger(id+1));
    id++;
    pthread_create(&threads[id], NULL, vip_RL, (void*) new Passenger(id+1));

    sleep(3);
    
    // test RL first
    id++;
    pthread_create(&threads[id], NULL, vip_RL, (void*) new Passenger(id+1));
    id++;
    pthread_create(&threads[id], NULL, vip_RL, (void*) new Passenger(id+1));
    sleep(1);
    id++;
    pthread_create(&threads[id], NULL, vip_LR, (void*) new Passenger(id+1));
    id++;
    pthread_create(&threads[id], NULL, vip_LR, (void*) new Passenger(id+1));
}

void test2(){
    /* 
        test LR priority:
        1 RL at time 0
        1 RL at time 1
        2 LR at time 2
        2 RL at time 3
        result : first 1,2 RL; 3,4 LR, 5,6 RL
    */

    vip_time=3; 
    pthread_t threads[6];
    // test LR first
    int id=0;
    pthread_create(&threads[id], NULL, vip_RL, (void*) new Passenger(id+1));
    id++;
    sleep(2);
    pthread_create(&threads[id], NULL, vip_RL, (void*) new Passenger(id+1));
    sleep(1);
    id++;
    pthread_create(&threads[id], NULL, vip_LR, (void*) new Passenger(id+1));
    id++;
    pthread_create(&threads[id], NULL, vip_LR, (void*) new Passenger(id+1));
    sleep(1);
    id++;
    pthread_create(&threads[id], NULL, vip_RL, (void*) new Passenger(id+1));
    id++;
    pthread_create(&threads[id], NULL, vip_RL, (void*) new Passenger(id+1));
}

void test3(){
    /* 
        test RL priority:
        1 LR at time 0
        1 LR at time 1
        2 RL at time 2
        2 LR at time 3
        result : first 1,2,5,6 LR, 3,4 RL
    */

    vip_time=3; 
    pthread_t threads[6];
    // test LR first
    int id=0;
    pthread_create(&threads[id], NULL, vip_LR, (void*) new Passenger(id+1));
    id++;
    sleep(2);
    pthread_create(&threads[id], NULL, vip_LR, (void*) new Passenger(id+1));
    sleep(1);
    id++;
    pthread_create(&threads[id], NULL, vip_RL, (void*) new Passenger(id+1));
    id++;
    pthread_create(&threads[id], NULL, vip_RL, (void*) new Passenger(id+1));
    sleep(1);
    id++;
    pthread_create(&threads[id], NULL, vip_LR, (void*) new Passenger(id+1));
    id++;
    pthread_create(&threads[id], NULL, vip_LR, (void*) new Passenger(id+1));
}
Editor is loading...