ExpandCollapsePrev Next Index

+ 4.1 pthread-1.02-0.flx

  include "std/io/faio";
  
  print "Garbage collector world stop test"; endl;
  
  var clock = Faio::mk_alarm_clock();
  
  proc randprint(n:int)
  {
    var i = 5;
    print$ "Start Thread number "+str(n); endl;
    while i > 0 do
      var d = double$ Cstdlib::rand()%10;
      if d == 0.0 do
        print "ZERO FOUND -- collecting!"; endl;
        collect;
        print "collected!"; endl;
      done;
      print$ "Thread "+str n +" Sleep #"+str i+" for "+str d+" sec"; endl;
      --i;
      Faio::sleep (clock,d);
    done;
    print$ "Finish Thread number "+str(n); endl;
  }
  
  Pthread::spawn_pthread { randprint(1); };
  Pthread::spawn_pthread { randprint(2); };
  Pthread::spawn_pthread { randprint(3); };
  Pthread::spawn_pthread { randprint(4); };
  Pthread::spawn_pthread { randprint(5); };
  
  print "Mainline done!"; endl;