Index: benchmark/Makefile.am
===================================================================
--- benchmark/Makefile.am	(revision 6e540ea6f2eb5e8c7c9342b94e6f036ca964f3ec)
+++ benchmark/Makefile.am	(revision 4eb07bc89b488e72e994bb07895f35c0be0aaa93)
@@ -11,6 +11,6 @@
 ## Created On       : Sun May 31 09:08:15 2015
 ## Last Modified By : Peter A. Buhr
-## Last Modified On : Tue Jan  7 21:04:53 2020
-## Update Count     : 105
+## Last Modified On : Thu Jan  9 13:03:04 2020
+## Update Count     : 203
 ###############################################################################
 
@@ -72,5 +72,5 @@
 	echo "int main() { return 0; }" > ${@}
 
-.SILENT:		# do not print recipe
+#.SILENT:		# do not print recipe
 .ONESHELL:		# use one shell to execute recipe
 .NOTPARALLEL:
@@ -80,4 +80,29 @@
 
 all : basic$(EXEEXT) ctxswitch$(EXEEXT) mutex$(EXEEXT) signal$(EXEEXT) waitfor$(EXEEXT) creation$(EXEEXT)
+
+basic_loop_DURATION = 15000000000
+basic_function_DURATION = 10000000000
+basic_DURATION = 250000000
+
+ctxswitch_pthread_DURATION = 50000000
+ctxswitch_cfa_generator_DURATION = 5000000000
+ctxswitch_DURATION = 100000000
+
+mutex_DURATION = 50000000
+
+signal_pthread_DURATION = 5000000
+signal_DURATION = 50000000
+
+waitfor_upp_DURATION = 5000000
+waitfor_DURATION = 500000
+
+creation_cfa_coroutine_DURATION = 10000000
+creation_cfa_coroutine_eager_DURATION = ${creation_cfa_coroutine_DURATION}
+creation_cfa_thread_DURATION = ${creation_cfa_coroutine_DURATION}
+creation_upp_coroutine_DURATION = 50000000
+creation_upp_thread_DURATION = ${creation_upp_coroutine_DURATION}
+creation_pthread_DURATION = 250000
+creation_DURATION = 50000000
+
 
 %.run : %$(EXEEXT) ${REPEAT}
@@ -85,5 +110,5 @@
 	echo "------------------------------------------------------"
 	echo $<
-	${REPEAT} ${repeats} ./a.out | tee -a .result.log
+	${REPEAT} ${repeats} -- /usr/bin/time -f "%Uu %Ss %Er %Mkb" ./a.out $(if ${$(subst -,_,$(basename $@))_DURATION},${$(subst -,_,$(basename $@))_DURATION},${$(firstword $(subst -, ,$(basename $@)))_DURATION}) | tee -a .result.log
 	${STATS} .result.log
 	echo "------------------------------------------------------"
@@ -178,6 +203,6 @@
 ## =========================================================================================================
 
-BASIC_DEPEND  =				\
-	basic-loop.run			\
+BASIC_DEPEND  =					\
+	basic-loop.run				\
 	basic-function.run			\
 	basic-fetch_add.run			\
@@ -201,31 +226,4 @@
 
 basic$(EXEEXT): $(BASIC_DEPEND)
-
-basic-loop.run : basic-loop$(EXEEXT) ${REPEAT}
-	rm -f .result.log
-	echo "------------------------------------------------------"
-	echo $<
-	${REPEAT} ${repeats} ./a.out 10000000000 | tee -a .result.log
-	${STATS} .result.log
-	echo "------------------------------------------------------"
-	rm -f a.out .result.log *.class
-
-basic-function.run : basic-function$(EXEEXT) ${REPEAT}
-	rm -f .result.log
-	echo "------------------------------------------------------"
-	echo $<
-	${REPEAT} ${repeats} ./a.out 5000000000 | tee -a .result.log
-	${STATS} .result.log
-	echo "------------------------------------------------------"
-	rm -f a.out .result.log *.class
-
-basic-%.run : basic-%$(EXEEXT) ${REPEAT}
-	rm -f .result.log
-	echo "------------------------------------------------------"
-	echo $<
-	${REPEAT} ${repeats} ./a.out 500000000 | tee -a .result.log
-	${STATS} .result.log
-	echo "------------------------------------------------------"
-	rm -f a.out .result.log *.class
 
 ## =========================================================================================================
@@ -286,4 +284,7 @@
 
 ctxswitch-nodejs_coroutine$(EXEEXT):
+	echo "#!/bin/sh" > a.out
+	echo "node $(srcdir)/ctxswitch/node_cor.js" >> a.out
+	chmod a+x a.out
 
 ctxswitch-java_thread$(EXEEXT):
@@ -292,24 +293,4 @@
 	echo "java JavaThread" >> a.out
 	chmod a+x a.out
-
-ctxswitch-nodejs_coroutine.run : ctxswitch-nodejs_coroutine$(EXEEXT) ${REPEAT}
-	rm -f .result.log
-	echo "------------------------------------------------------"
-	echo $<
-	for (( i = 1; i <= ${repeats}; i += 1 )) ; do
-		node $(srcdir)/ctxswitch/node_cor.js 50000000 | tee -a .result.log
-	done
-	${STATS} .result.log
-	echo "------------------------------------------------------"
-	rm -f a.out .result.log *.class
-
-ctxswitch-%.run : ctxswitch-%$(EXEEXT) ${REPEAT}
-	rm -f .result.log
-	echo "------------------------------------------------------"
-	echo $<
-	${REPEAT} ${repeats} ./a.out 50000000 | tee -a .result.log
-	${STATS} .result.log
-	echo "------------------------------------------------------"
-	rm -f a.out .result.log *.class
 
 ## =========================================================================================================
@@ -326,17 +307,17 @@
 
 mutex-pthread$(EXEEXT):
-	$(BENCH_V_CC)$(COMPILE)     -DBENCH_N=50000000 $(srcdir)/mutex/pthreads.c
+	$(BENCH_V_CC)$(COMPILE) $(srcdir)/mutex/pthreads.c
 
 mutex-upp$(EXEEXT):
-	$(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/upp.cc
+	$(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/mutex/upp.cc
 
 mutex-cfa1$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/cfa1.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutex/cfa1.cfa
 
 mutex-cfa2$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/cfa2.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutex/cfa2.cfa
 
 mutex-cfa4$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/cfa4.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutex/cfa4.cfa
 
 mutex-go$(EXEEXT):
@@ -364,17 +345,17 @@
 
 signal-pthread$(EXEEXT):
-	$(BENCH_V_CC)$(COMPILE)     -DBENCH_N=5000000  $(srcdir)/schedint/pthreads.c
+	$(BENCH_V_CC)$(COMPILE) $(srcdir)/schedint/pthreads.c
 
 signal-upp$(EXEEXT):
-	$(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/schedint/upp.cc
+	$(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/schedint/upp.cc
 
 signal-cfa1$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/schedint/cfa1.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedint/cfa1.cfa
 
 signal-cfa2$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/schedint/cfa2.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedint/cfa2.cfa
 
 signal-cfa4$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/schedint/cfa4.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedint/cfa4.cfa
 
 signal-rust$(EXEEXT):
@@ -396,14 +377,14 @@
 
 waitfor-upp$(EXEEXT):
-	$(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=5000000 $(srcdir)/schedext/upp.cc
+	$(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/schedext/upp.cc
 
 waitfor-cfa1$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa1.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedext/cfa1.cfa
 
 waitfor-cfa2$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa2.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedext/cfa2.cfa
 
 waitfor-cfa4$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa4.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedext/cfa4.cfa
 
 ## =========================================================================================================
@@ -421,20 +402,20 @@
 
 creation-cfa_coroutine$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/creation/cfa_cor.cfa
 
 creation-cfa_coroutine_eager$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.cfa  -DEAGER
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/creation/cfa_cor.cfa  -DEAGER
 
 creation-cfa_thread$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_thrd.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/creation/cfa_thrd.cfa
 
 creation-upp_coroutine$(EXEEXT):
-	$(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_cor.cc
+	$(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/creation/upp_cor.cc
 
 creation-upp_thread$(EXEEXT):
-	$(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_thrd.cc
+	$(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/creation/upp_thrd.cc
 
 creation-pthread$(EXEEXT):
-	$(BENCH_V_CC)$(COMPILE) -DBENCH_N=250000 $(srcdir)/creation/pthreads.c
+	$(BENCH_V_CC)$(COMPILE) $(srcdir)/creation/pthreads.c
 
 creation-goroutine$(EXEEXT):
Index: benchmark/Makefile.in
===================================================================
--- benchmark/Makefile.in	(revision 6e540ea6f2eb5e8c7c9342b94e6f036ca964f3ec)
+++ benchmark/Makefile.in	(revision 4eb07bc89b488e72e994bb07895f35c0be0aaa93)
@@ -419,7 +419,25 @@
 PRINT_FORMAT = %20s: #Comments needed for spacing
 dummy_SOURCES = dummyC.c dummyCXX.cpp
+basic_loop_DURATION = 15000000000
+basic_function_DURATION = 10000000000
+basic_DURATION = 250000000
+ctxswitch_pthread_DURATION = 50000000
+ctxswitch_cfa_generator_DURATION = 5000000000
+ctxswitch_DURATION = 100000000
+mutex_DURATION = 50000000
+signal_pthread_DURATION = 5000000
+signal_DURATION = 50000000
+waitfor_upp_DURATION = 5000000
+waitfor_DURATION = 500000
+creation_cfa_coroutine_DURATION = 10000000
+creation_cfa_coroutine_eager_DURATION = ${creation_cfa_coroutine_DURATION}
+creation_cfa_thread_DURATION = ${creation_cfa_coroutine_DURATION}
+creation_upp_coroutine_DURATION = 50000000
+creation_upp_thread_DURATION = ${creation_upp_coroutine_DURATION}
+creation_pthread_DURATION = 250000
+creation_DURATION = 50000000
 FIX_NEW_LINES = cat $@ | tr "\n" "\t" | sed -r 's/\t,/,/' | tr "\t" "\n" > $@
 BASIC_DEPEND = \
-	basic-loop.run			\
+	basic-loop.run				\
 	basic-function.run			\
 	basic-fetch_add.run			\
@@ -756,5 +774,5 @@
 	echo "int main() { return 0; }" > ${@}
 
-.SILENT:		# do not print recipe
+#.SILENT:		# do not print recipe
 .ONESHELL:		# use one shell to execute recipe
 .NOTPARALLEL:
@@ -767,5 +785,5 @@
 	echo "------------------------------------------------------"
 	echo $<
-	${REPEAT} ${repeats} ./a.out | tee -a .result.log
+	${REPEAT} ${repeats} -- /usr/bin/time -f "%Uu %Ss %Er %Mkb" ./a.out $(if ${$(subst -,_,$(basename $@))_DURATION},${$(subst -,_,$(basename $@))_DURATION},${$(firstword $(subst -, ,$(basename $@)))_DURATION}) | tee -a .result.log
 	${STATS} .result.log
 	echo "------------------------------------------------------"
@@ -871,31 +889,4 @@
 basic$(EXEEXT): $(BASIC_DEPEND)
 
-basic-loop.run : basic-loop$(EXEEXT) ${REPEAT}
-	rm -f .result.log
-	echo "------------------------------------------------------"
-	echo $<
-	${REPEAT} ${repeats} ./a.out 10000000000 | tee -a .result.log
-	${STATS} .result.log
-	echo "------------------------------------------------------"
-	rm -f a.out .result.log *.class
-
-basic-function.run : basic-function$(EXEEXT) ${REPEAT}
-	rm -f .result.log
-	echo "------------------------------------------------------"
-	echo $<
-	${REPEAT} ${repeats} ./a.out 5000000000 | tee -a .result.log
-	${STATS} .result.log
-	echo "------------------------------------------------------"
-	rm -f a.out .result.log *.class
-
-basic-%.run : basic-%$(EXEEXT) ${REPEAT}
-	rm -f .result.log
-	echo "------------------------------------------------------"
-	echo $<
-	${REPEAT} ${repeats} ./a.out 500000000 | tee -a .result.log
-	${STATS} .result.log
-	echo "------------------------------------------------------"
-	rm -f a.out .result.log *.class
-
 @WITH_LIBFIBRE_TRUE@ctxswitch-kos_fibre$(EXEEXT):
 @WITH_LIBFIBRE_TRUE@	$(BENCH_V_CXX)$(CXXCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/kos_fibre.cpp  -I$(LIBFIBRE_DIR) -lfibre
@@ -934,4 +925,7 @@
 
 ctxswitch-nodejs_coroutine$(EXEEXT):
+	echo "#!/bin/sh" > a.out
+	echo "node $(srcdir)/ctxswitch/node_cor.js" >> a.out
+	chmod a+x a.out
 
 ctxswitch-java_thread$(EXEEXT):
@@ -940,24 +934,4 @@
 	echo "java JavaThread" >> a.out
 	chmod a+x a.out
-
-ctxswitch-nodejs_coroutine.run : ctxswitch-nodejs_coroutine$(EXEEXT) ${REPEAT}
-	rm -f .result.log
-	echo "------------------------------------------------------"
-	echo $<
-	for (( i = 1; i <= ${repeats}; i += 1 )) ; do
-		node $(srcdir)/ctxswitch/node_cor.js 50000000 | tee -a .result.log
-	done
-	${STATS} .result.log
-	echo "------------------------------------------------------"
-	rm -f a.out .result.log *.class
-
-ctxswitch-%.run : ctxswitch-%$(EXEEXT) ${REPEAT}
-	rm -f .result.log
-	echo "------------------------------------------------------"
-	echo $<
-	${REPEAT} ${repeats} ./a.out 50000000 | tee -a .result.log
-	${STATS} .result.log
-	echo "------------------------------------------------------"
-	rm -f a.out .result.log *.class
 
 mutex$(EXEEXT) :		\
@@ -972,17 +946,17 @@
 
 mutex-pthread$(EXEEXT):
-	$(BENCH_V_CC)$(COMPILE)     -DBENCH_N=50000000 $(srcdir)/mutex/pthreads.c
+	$(BENCH_V_CC)$(COMPILE) $(srcdir)/mutex/pthreads.c
 
 mutex-upp$(EXEEXT):
-	$(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/upp.cc
+	$(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/mutex/upp.cc
 
 mutex-cfa1$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/cfa1.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutex/cfa1.cfa
 
 mutex-cfa2$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/cfa2.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutex/cfa2.cfa
 
 mutex-cfa4$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/cfa4.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutex/cfa4.cfa
 
 mutex-go$(EXEEXT):
@@ -1008,17 +982,17 @@
 
 signal-pthread$(EXEEXT):
-	$(BENCH_V_CC)$(COMPILE)     -DBENCH_N=5000000  $(srcdir)/schedint/pthreads.c
+	$(BENCH_V_CC)$(COMPILE) $(srcdir)/schedint/pthreads.c
 
 signal-upp$(EXEEXT):
-	$(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/schedint/upp.cc
+	$(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/schedint/upp.cc
 
 signal-cfa1$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/schedint/cfa1.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedint/cfa1.cfa
 
 signal-cfa2$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/schedint/cfa2.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedint/cfa2.cfa
 
 signal-cfa4$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/schedint/cfa4.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedint/cfa4.cfa
 
 signal-rust$(EXEEXT):
@@ -1038,14 +1012,14 @@
 
 waitfor-upp$(EXEEXT):
-	$(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=5000000 $(srcdir)/schedext/upp.cc
+	$(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/schedext/upp.cc
 
 waitfor-cfa1$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa1.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedext/cfa1.cfa
 
 waitfor-cfa2$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa2.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedext/cfa2.cfa
 
 waitfor-cfa4$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa4.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedext/cfa4.cfa
 
 creation$(EXEEXT) :				\
@@ -1061,20 +1035,20 @@
 
 creation-cfa_coroutine$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/creation/cfa_cor.cfa
 
 creation-cfa_coroutine_eager$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.cfa  -DEAGER
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/creation/cfa_cor.cfa  -DEAGER
 
 creation-cfa_thread$(EXEEXT):
-	$(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_thrd.cfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/creation/cfa_thrd.cfa
 
 creation-upp_coroutine$(EXEEXT):
-	$(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_cor.cc
+	$(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/creation/upp_cor.cc
 
 creation-upp_thread$(EXEEXT):
-	$(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_thrd.cc
+	$(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/creation/upp_thrd.cc
 
 creation-pthread$(EXEEXT):
-	$(BENCH_V_CC)$(COMPILE) -DBENCH_N=250000 $(srcdir)/creation/pthreads.c
+	$(BENCH_V_CC)$(COMPILE) $(srcdir)/creation/pthreads.c
 
 creation-goroutine$(EXEEXT):
