#! ./tesh p Runs the 'philosopher' test within the simulator ! output sort 28 $ $SG_TEST_EXENV ./synchro_simulator${EXEEXT:=} ${srcdir:=.}/../../msg/small_platform.xml ${srcdir:=.}/synchro.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" > [ 0.000000] (1:philosopher@Tremblay) Spawn the 5 threads (10 lunches scheduled) > [ 0.000000] (1:thread 0@Tremblay) Thread 0 gets hungry (lunch #0) > [ 0.000000] (1:thread 0@Tremblay) Thread 0 eats > [ 0.000000] (1:thread 0@Tremblay) Thread 0 is full > [ 0.000000] (1:thread 0@Tremblay) Thread 0 thinks > [ 0.000000] (1:thread 0@Tremblay) Thread 0 gets hungry (lunch #1) > [ 0.000000] (1:thread 1@Tremblay) Thread 1 gets hungry (lunch #0) > [ 0.000000] (1:thread 2@Tremblay) Thread 2 gets hungry (lunch #0) > [ 0.000000] (1:thread 2@Tremblay) Thread 2 eats > [ 0.000000] (1:thread 3@Tremblay) Thread 3 gets hungry (lunch #0) > [ 0.000000] (1:thread 4@Tremblay) Thread 4 gets hungry (lunch #0) > [ 0.000000] (1:thread 4@Tremblay) Thread 4 eats > [ 0.020000] (1:thread 1@Tremblay) Thread 1 eats > [ 0.020000] (1:thread 2@Tremblay) Thread 2 is full > [ 0.020000] (1:thread 2@Tremblay) Thread 2 thinks > [ 0.030000] (1:thread 1@Tremblay) Thread 1 is full > [ 0.030000] (1:thread 1@Tremblay) Thread 1 thinks > [ 0.040000] (1:thread 1@Tremblay) Thread 1 gets hungry (lunch #1) > [ 0.040000] (1:thread 1@Tremblay) Thread 1 eats > [ 0.040000] (1:thread 2@Tremblay) Thread 2 gets hungry (lunch #1) > [ 0.040000] (1:thread 3@Tremblay) Thread 3 eats > [ 0.040000] (1:thread 4@Tremblay) Thread 4 is full > [ 0.040000] (1:thread 4@Tremblay) Thread 4 thinks > [ 0.050000] (1:thread 0@Tremblay) Thread 0 eats > [ 0.050000] (1:thread 0@Tremblay) Thread 0 is full > [ 0.050000] (1:thread 0@Tremblay) Thread 0 thinks > [ 0.050000] (1:thread 0@Tremblay) Thread 0 gets hungry (lunch #2) > [ 0.050000] (1:thread 0@Tremblay) Thread 0 eats > [ 0.050000] (1:thread 0@Tremblay) Thread 0 is full > [ 0.050000] (1:thread 0@Tremblay) Thread 0 thinks > [ 0.050000] (1:thread 0@Tremblay) Thread 0 gets hungry (lunch #3) > [ 0.050000] (1:thread 0@Tremblay) Thread 0 eats > [ 0.050000] (1:thread 0@Tremblay) Thread 0 is full > [ 0.050000] (1:thread 0@Tremblay) Thread 0 thinks > [ 0.050000] (1:thread 0@Tremblay) Thread 0 gets hungry (lunch #4) > [ 0.050000] (1:thread 0@Tremblay) Thread 0 eats > [ 0.050000] (1:thread 0@Tremblay) Thread 0 is full > [ 0.050000] (1:thread 0@Tremblay) Thread 0 thinks > [ 0.050000] (1:thread 0@Tremblay) Thread 0 gets hungry (lunch #5) > [ 0.050000] (1:thread 0@Tremblay) Thread 0 eats > [ 0.050000] (1:thread 0@Tremblay) Thread 0 is full > [ 0.050000] (1:thread 0@Tremblay) Thread 0 thinks > [ 0.050000] (1:thread 0@Tremblay) Thread 0 gets hungry (lunch #6) > [ 0.050000] (1:thread 0@Tremblay) Thread 0 eats > [ 0.050000] (1:thread 0@Tremblay) Thread 0 is full > [ 0.050000] (1:thread 0@Tremblay) Thread 0 thinks > [ 0.050000] (1:thread 0@Tremblay) Thread 0 gets hungry (lunch #7) > [ 0.050000] (1:thread 0@Tremblay) Thread 0 eats > [ 0.050000] (1:thread 0@Tremblay) Thread 0 is full > [ 0.050000] (1:thread 0@Tremblay) Thread 0 thinks > [ 0.050000] (1:thread 0@Tremblay) Thread 0 gets hungry (lunch #8) > [ 0.050000] (1:thread 0@Tremblay) Thread 0 eats > [ 0.050000] (1:thread 0@Tremblay) Thread 0 is full > [ 0.050000] (1:thread 0@Tremblay) Thread 0 thinks > [ 0.050000] (1:thread 0@Tremblay) Thread 0 gets hungry (lunch #9) > [ 0.050000] (1:thread 0@Tremblay) Thread 0 eats > [ 0.050000] (1:thread 0@Tremblay) Thread 0 is full > [ 0.050000] (1:thread 0@Tremblay) Thread 0 thinks > [ 0.050000] (1:thread 0@Tremblay) Thread 0 tries to enter the dead-end; hopefully, the master will cancel it > [ 0.050000] (1:thread 1@Tremblay) Thread 1 is full > [ 0.050000] (1:thread 1@Tremblay) Thread 1 thinks > [ 0.060000] (1:thread 1@Tremblay) Thread 1 gets hungry (lunch #2) > [ 0.060000] (1:thread 1@Tremblay) Thread 1 eats > [ 0.070000] (1:thread 1@Tremblay) Thread 1 is full > [ 0.070000] (1:thread 1@Tremblay) Thread 1 thinks > [ 0.070000] (1:thread 2@Tremblay) Thread 2 eats > [ 0.070000] (1:thread 3@Tremblay) Thread 3 is full > [ 0.070000] (1:thread 3@Tremblay) Thread 3 thinks > [ 0.080000] (1:thread 1@Tremblay) Thread 1 gets hungry (lunch #3) > [ 0.080000] (1:thread 4@Tremblay) Thread 4 gets hungry (lunch #1) > [ 0.080000] (1:thread 4@Tremblay) Thread 4 eats > [ 0.090000] (1:thread 1@Tremblay) Thread 1 eats > [ 0.090000] (1:thread 2@Tremblay) Thread 2 is full > [ 0.090000] (1:thread 2@Tremblay) Thread 2 thinks > [ 0.100000] (1:thread 1@Tremblay) Thread 1 is full > [ 0.100000] (1:thread 1@Tremblay) Thread 1 thinks > [ 0.100000] (1:thread 3@Tremblay) Thread 3 gets hungry (lunch #1) > [ 0.110000] (1:thread 1@Tremblay) Thread 1 gets hungry (lunch #4) > [ 0.110000] (1:thread 1@Tremblay) Thread 1 eats > [ 0.110000] (1:thread 2@Tremblay) Thread 2 gets hungry (lunch #2) > [ 0.120000] (1:thread 1@Tremblay) Thread 1 is full > [ 0.120000] (1:thread 1@Tremblay) Thread 1 thinks > [ 0.120000] (1:thread 3@Tremblay) Thread 3 eats > [ 0.120000] (1:thread 4@Tremblay) Thread 4 is full > [ 0.120000] (1:thread 4@Tremblay) Thread 4 thinks > [ 0.130000] (1:thread 1@Tremblay) Thread 1 gets hungry (lunch #5) > [ 0.130000] (1:thread 1@Tremblay) Thread 1 eats > [ 0.140000] (1:thread 1@Tremblay) Thread 1 is full > [ 0.140000] (1:thread 1@Tremblay) Thread 1 thinks > [ 0.150000] (1:thread 1@Tremblay) Thread 1 gets hungry (lunch #6) > [ 0.150000] (1:thread 1@Tremblay) Thread 1 eats > [ 0.150000] (1:thread 3@Tremblay) Thread 3 is full > [ 0.150000] (1:thread 3@Tremblay) Thread 3 thinks > [ 0.160000] (1:thread 1@Tremblay) Thread 1 is full > [ 0.160000] (1:thread 1@Tremblay) Thread 1 thinks > [ 0.160000] (1:thread 2@Tremblay) Thread 2 eats > [ 0.160000] (1:thread 4@Tremblay) Thread 4 gets hungry (lunch #2) > [ 0.160000] (1:thread 4@Tremblay) Thread 4 eats > [ 0.170000] (1:thread 1@Tremblay) Thread 1 gets hungry (lunch #7) > [ 0.180000] (1:thread 1@Tremblay) Thread 1 eats > [ 0.180000] (1:thread 2@Tremblay) Thread 2 is full > [ 0.180000] (1:thread 2@Tremblay) Thread 2 thinks > [ 0.180000] (1:thread 3@Tremblay) Thread 3 gets hungry (lunch #2) > [ 0.190000] (1:thread 1@Tremblay) Thread 1 is full > [ 0.190000] (1:thread 1@Tremblay) Thread 1 thinks > [ 0.200000] (1:thread 1@Tremblay) Thread 1 gets hungry (lunch #8) > [ 0.200000] (1:thread 2@Tremblay) Thread 2 gets hungry (lunch #3) > [ 0.200000] (1:thread 2@Tremblay) Thread 2 eats > [ 0.200000] (1:thread 4@Tremblay) Thread 4 is full > [ 0.200000] (1:thread 4@Tremblay) Thread 4 thinks > [ 0.220000] (1:thread 1@Tremblay) Thread 1 eats > [ 0.220000] (1:thread 2@Tremblay) Thread 2 is full > [ 0.220000] (1:thread 2@Tremblay) Thread 2 thinks > [ 0.220000] (1:thread 3@Tremblay) Thread 3 eats > [ 0.230000] (1:thread 1@Tremblay) Thread 1 is full > [ 0.230000] (1:thread 1@Tremblay) Thread 1 thinks > [ 0.240000] (1:thread 1@Tremblay) Thread 1 gets hungry (lunch #9) > [ 0.240000] (1:thread 1@Tremblay) Thread 1 eats > [ 0.240000] (1:thread 2@Tremblay) Thread 2 gets hungry (lunch #4) > [ 0.240000] (1:thread 4@Tremblay) Thread 4 gets hungry (lunch #3) > [ 0.250000] (1:thread 1@Tremblay) Thread 1 is full > [ 0.250000] (1:thread 1@Tremblay) Thread 1 thinks > [ 0.250000] (1:thread 2@Tremblay) Thread 2 eats > [ 0.250000] (1:thread 3@Tremblay) Thread 3 is full > [ 0.250000] (1:thread 3@Tremblay) Thread 3 thinks > [ 0.250000] (1:thread 4@Tremblay) Thread 4 eats > [ 0.260000] (1:thread 1@Tremblay) Thread 1 tries to enter the dead-end; hopefully, the master will cancel it > [ 0.270000] (1:thread 2@Tremblay) Thread 2 is full > [ 0.270000] (1:thread 2@Tremblay) Thread 2 thinks > [ 0.280000] (1:thread 3@Tremblay) Thread 3 gets hungry (lunch #3) > [ 0.290000] (1:thread 2@Tremblay) Thread 2 gets hungry (lunch #5) > [ 0.290000] (1:thread 2@Tremblay) Thread 2 eats > [ 0.290000] (1:thread 4@Tremblay) Thread 4 is full > [ 0.290000] (1:thread 4@Tremblay) Thread 4 thinks > [ 0.310000] (1:thread 2@Tremblay) Thread 2 is full > [ 0.310000] (1:thread 2@Tremblay) Thread 2 thinks > [ 0.310000] (1:thread 3@Tremblay) Thread 3 eats > [ 0.330000] (1:thread 2@Tremblay) Thread 2 gets hungry (lunch #6) > [ 0.330000] (1:thread 4@Tremblay) Thread 4 gets hungry (lunch #4) > [ 0.340000] (1:thread 2@Tremblay) Thread 2 eats > [ 0.340000] (1:thread 3@Tremblay) Thread 3 is full > [ 0.340000] (1:thread 3@Tremblay) Thread 3 thinks > [ 0.340000] (1:thread 4@Tremblay) Thread 4 eats > [ 0.360000] (1:thread 2@Tremblay) Thread 2 is full > [ 0.360000] (1:thread 2@Tremblay) Thread 2 thinks > [ 0.370000] (1:thread 3@Tremblay) Thread 3 gets hungry (lunch #4) > [ 0.380000] (1:thread 2@Tremblay) Thread 2 gets hungry (lunch #7) > [ 0.380000] (1:thread 2@Tremblay) Thread 2 eats > [ 0.380000] (1:thread 4@Tremblay) Thread 4 is full > [ 0.380000] (1:thread 4@Tremblay) Thread 4 thinks > [ 0.400000] (1:thread 2@Tremblay) Thread 2 is full > [ 0.400000] (1:thread 2@Tremblay) Thread 2 thinks > [ 0.400000] (1:thread 3@Tremblay) Thread 3 eats > [ 0.420000] (1:thread 2@Tremblay) Thread 2 gets hungry (lunch #8) > [ 0.420000] (1:thread 4@Tremblay) Thread 4 gets hungry (lunch #5) > [ 0.430000] (1:thread 2@Tremblay) Thread 2 eats > [ 0.430000] (1:thread 3@Tremblay) Thread 3 is full > [ 0.430000] (1:thread 3@Tremblay) Thread 3 thinks > [ 0.430000] (1:thread 4@Tremblay) Thread 4 eats > [ 0.450000] (1:thread 2@Tremblay) Thread 2 is full > [ 0.450000] (1:thread 2@Tremblay) Thread 2 thinks > [ 0.460000] (1:thread 3@Tremblay) Thread 3 gets hungry (lunch #5) > [ 0.470000] (1:thread 2@Tremblay) Thread 2 gets hungry (lunch #9) > [ 0.470000] (1:thread 2@Tremblay) Thread 2 eats > [ 0.470000] (1:thread 4@Tremblay) Thread 4 is full > [ 0.470000] (1:thread 4@Tremblay) Thread 4 thinks > [ 0.490000] (1:thread 2@Tremblay) Thread 2 is full > [ 0.490000] (1:thread 2@Tremblay) Thread 2 thinks > [ 0.490000] (1:thread 3@Tremblay) Thread 3 eats > [ 0.510000] (1:thread 2@Tremblay) Thread 2 tries to enter the dead-end; hopefully, the master will cancel it > [ 0.510000] (1:thread 4@Tremblay) Thread 4 gets hungry (lunch #6) > [ 0.520000] (1:thread 3@Tremblay) Thread 3 is full > [ 0.520000] (1:thread 3@Tremblay) Thread 3 thinks > [ 0.520000] (1:thread 4@Tremblay) Thread 4 eats > [ 0.550000] (1:thread 3@Tremblay) Thread 3 gets hungry (lunch #6) > [ 0.560000] (1:thread 3@Tremblay) Thread 3 eats > [ 0.560000] (1:thread 4@Tremblay) Thread 4 is full > [ 0.560000] (1:thread 4@Tremblay) Thread 4 thinks > [ 0.590000] (1:thread 3@Tremblay) Thread 3 is full > [ 0.590000] (1:thread 3@Tremblay) Thread 3 thinks > [ 0.600000] (1:thread 4@Tremblay) Thread 4 gets hungry (lunch #7) > [ 0.600000] (1:thread 4@Tremblay) Thread 4 eats > [ 0.620000] (1:thread 3@Tremblay) Thread 3 gets hungry (lunch #7) > [ 0.640000] (1:thread 3@Tremblay) Thread 3 eats > [ 0.640000] (1:thread 4@Tremblay) Thread 4 is full > [ 0.640000] (1:thread 4@Tremblay) Thread 4 thinks > [ 0.670000] (1:thread 3@Tremblay) Thread 3 is full > [ 0.670000] (1:thread 3@Tremblay) Thread 3 thinks > [ 0.680000] (1:thread 4@Tremblay) Thread 4 gets hungry (lunch #8) > [ 0.680000] (1:thread 4@Tremblay) Thread 4 eats > [ 0.700000] (1:thread 3@Tremblay) Thread 3 gets hungry (lunch #8) > [ 0.720000] (1:thread 3@Tremblay) Thread 3 eats > [ 0.720000] (1:thread 4@Tremblay) Thread 4 is full > [ 0.720000] (1:thread 4@Tremblay) Thread 4 thinks > [ 0.750000] (1:thread 3@Tremblay) Thread 3 is full > [ 0.750000] (1:thread 3@Tremblay) Thread 3 thinks > [ 0.760000] (1:thread 4@Tremblay) Thread 4 gets hungry (lunch #9) > [ 0.760000] (1:thread 4@Tremblay) Thread 4 eats > [ 0.780000] (1:thread 3@Tremblay) Thread 3 gets hungry (lunch #9) > [ 0.800000] (1:thread 3@Tremblay) Thread 3 eats > [ 0.800000] (1:thread 4@Tremblay) Thread 4 is full > [ 0.800000] (1:thread 4@Tremblay) Thread 4 thinks > [ 0.830000] (1:thread 3@Tremblay) Thread 3 is full > [ 0.830000] (1:thread 3@Tremblay) Thread 3 thinks > [ 0.840000] (1:thread 4@Tremblay) Thread 4 tries to enter the dead-end; hopefully, the master will cancel it > [ 0.860000] (1:philosopher@Tremblay) Cancel all childs > [ 0.860000] (1:philosopher@Tremblay) Exiting GRAS > [ 0.860000] (1:thread 3@Tremblay) Thread 3 tries to enter the dead-end; hopefully, the master will cancel it