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

Added comments.

Location:
tests/concurrent/barrier
Files:
2 edited

Legend:

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

    r93b8cf4 r31ef267  
    1515//
    1616
     17// Test validates barrier by having each thread print ABCD...
     18// If the barrier is correct it should print all As, all Bs, etc.
    1719
    18 int NUM_THREADS = 9;
    19 int NUM_LAPS = 53;
     20unsigned NUM_THREADS = 9;
     21unsigned NUM_LAPS = 53;
    2022
    2123#include <concurrency/barrier.hfa>
     
    2426#include <thread.hfa>
    2527
     28// The barrier we are testing
    2629barrier bar = { NUM_THREADS };
     30
    2731
    2832thread Tester {};
    2933void main( Tester & this ) {
     34        // Repeat the experiment a few times
    3035        for(NUM_LAPS)
     36                // For each letters
    3137                for(c; 'A' ~= 'Z') {
     38                        // Yield for chaos
    3239                        yield(prng(this, 10));
     40
     41                        // Print the generation, no newline because
    3342                        mutex(sout) sout | c | nonl;
     43
     44                        // Yield again for more chaos
    3445                        yield(prng(this, 10));
     46
     47                        // Block on the barrier
    3548                        block(bar);
    3649                }
  • 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.