Ignore:
Timestamp:
Apr 1, 2022, 12:40:35 PM (2 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, ast-experimental, enum, master, pthread-emulation, qualifiedEnum
Children:
1417f6b
Parents:
93b8cf4
Message:

Added comments.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tests/concurrent/barrier/order.cfa

    r93b8cf4 r31ef267  
    1515//
    1616
     17// Test validates barrier and block return value by checking
     18// that no more than one thread gets the same return value
     19
    1720#include <concurrency/barrier.hfa>
    1821#include <fstream.hfa>
     
    2023#include <thread.hfa>
    2124
    22 const int NUM_LAPS = 173;
    23 const int NUM_THREADS = 11;
     25const unsigned NUM_LAPS = 173;
     26const unsigned NUM_THREADS = 11;
    2427
     28// The barrier we are testing
    2529barrier bar = { NUM_THREADS };
    26 volatile int * generation;
     30
     31// The return values of the previous generation.
     32volatile unsigned * generation;
    2733
    2834thread Tester {};
    2935void main( Tester & ) {
     36        // Repeat a few times
    3037        for(l; NUM_LAPS) {
    31                 int ret = block(bar);
    32                 int g = generation[ret];
     38                // Block and what order we arrived
     39                unsigned ret = block(bar);
     40
     41                // Check what was the last generation of that last thread in this position
     42                unsigned g = generation[ret];
     43
     44                // Is it what we expect?
    3345                if(g != l) {
     46                        // Complain that they are different
    3447                        sout | "Gen" | l | ": Expeced generation at" | ret | "to be" | l | "was" | g;
    3548                }
    36                 generation[ret] = g+1;
     49
     50                // Mark the expected next generation
     51                generation[ret] = l+1;
    3752        }
    3853}
    3954
    4055int main() {
    41         volatile int gen_data[NUM_THREADS];
     56        // Create the data ans zero it.
     57        volatile unsigned gen_data[NUM_THREADS];
    4258        for(t; NUM_THREADS)
    4359                gen_data[t] = 0;
     
    4561        generation = gen_data;
    4662
     63        // Run the experiment
    4764        processor p[4];
    4865        {
Note: See TracChangeset for help on using the changeset viewer.