Index: benchmark/Makefile.am
===================================================================
--- benchmark/Makefile.am	(revision b4107c815918e9d1300f3381d29c2a863abf7de8)
+++ benchmark/Makefile.am	(revision 580c11b1c29e9c6f588c84b5c0c0947fb1998d70)
@@ -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 15:37:42 2020
-## Update Count     : 70
+## Last Modified On : Tue Jan  7 17:01:01 2020
+## Update Count     : 103
 ###############################################################################
 
@@ -65,9 +65,11 @@
 
 dummyC.c:
-	@echo "int main() { return 0; }" > ${@}
+	echo "int main() { return 0; }" > ${@}
 
 dummyCXX.cpp:
-	@echo "int main() { return 0; }" > ${@}
-
+	echo "int main() { return 0; }" > ${@}
+
+.SILENT:
+.ONESHELL:
 .NOTPARALLEL:
 .PHONY: compile.csv basic.csv ctxswitch.csv mutex.csv signal.csv
@@ -78,23 +80,23 @@
 
 %.run : %$(EXEEXT) ${REPEAT}
-	@rm -f .result.log
-	@echo "------------------------------------------------------"
-	@echo $<
-	@${REPEAT} ${repeats} ./a.out | tee -a .result.log
-	@${STATS} .result.log
-	@echo "------------------------------------------------------"
-	@rm -f a.out .result.log *.class
+	rm -f .result.log
+	echo "------------------------------------------------------"
+	echo $<
+	${REPEAT} ${repeats} ./a.out | tee -a .result.log
+	${STATS} .result.log
+	echo "------------------------------------------------------"
+	rm -f a.out .result.log *.class
 
 %.runquiet :
-	@+make $(basename $@) CFLAGS="-w" __quiet=quiet
-	@taskset -c 1 ./a.out
-	@rm -f a.out
+	+make $(basename $@) CFLAGS="-w" __quiet=quiet
+	taskset -c 1 ./a.out
+	rm -f a.out
 
 %.make :
-	@printf "${PRINT_FORMAT}" $(basename $(subst compile-,,$@))
-	@+/usr/bin/time -f ${TIME_FORMAT} make $(basename $@) 2>&1
+	printf "${PRINT_FORMAT}" $(basename $(subst compile-,,$@))
+	+/usr/bin/time -f ${TIME_FORMAT} make $(basename $@) 2>&1
 
 ${REPEAT} :
-	@+make -C ${abs_top_builddir}/tools repeat
+	+make -C ${abs_top_builddir}/tools repeat
 
 ## =========================================================================================================
@@ -104,15 +106,15 @@
 jenkins$(EXEEXT):
 @DOifskipcompile@
-	@+make compile.csv
-	@-+make compile.diff.csv
+	+make compile.csv
+	-+make compile.diff.csv
 @DOendif@
-	@+make basic.csv
-	@-+make basic.diff.csv
-	@+make ctxswitch.csv
-	@-+make ctxswitch.diff.csv
-	@+make mutex.csv
-	@-+make mutex.diff.csv
-	@+make signal.csv
-	@-+make signal.diff.csv
+	+make basic.csv
+	-+make basic.diff.csv
+	+make ctxswitch.csv
+	-+make ctxswitch.diff.csv
+	+make mutex.csv
+	-+make mutex.diff.csv
+	+make signal.csv
+	-+make signal.diff.csv
 @DOifskipcompile@
 	cat compile.csv
@@ -129,46 +131,46 @@
 
 compile.csv:
-	@echo "array,attributes,empty,expression,io,monitor,operators,typeof" > $@
-	@+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-array.make >> $@
-	@+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-attributes.make >> $@
-	@+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-empty.make >> $@
-	@+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-expression.make >> $@
-	@+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-io.make >> $@
-	@+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-monitor.make >> $@
-	@+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-operators.make >> $@
-	@+make TIME_FORMAT='%e' PRINT_FORMAT='' compile-typeof.make >> $@
-	@$(srcdir)/fixcsv.sh $@
+	echo "array,attributes,empty,expression,io,monitor,operators,typeof" > $@
+	+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-array.make >> $@
+	+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-attributes.make >> $@
+	+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-empty.make >> $@
+	+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-expression.make >> $@
+	+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-io.make >> $@
+	+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-monitor.make >> $@
+	+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-operators.make >> $@
+	+make TIME_FORMAT='%e' PRINT_FORMAT='' compile-typeof.make >> $@
+	$(srcdir)/fixcsv.sh $@
 
 basic.csv:
-	@echo "generator,coroutine,thread" > $@
-	@+make basic-cfa_generator.runquiet >> $@ && echo -n ',' >> $@
-	@+make basic-cfa_coroutine.runquiet >> $@ && echo -n ',' >> $@
-	@+make basic-cfa_thread.runquiet >> $@
-	@$(srcdir)/fixcsv.sh $@
+	echo "generator,coroutine,thread" > $@
+	+make basic-cfa_generator.runquiet >> $@ && echo -n ',' >> $@
+	+make basic-cfa_coroutine.runquiet >> $@ && echo -n ',' >> $@
+	+make basic-cfa_thread.runquiet >> $@
+	$(srcdir)/fixcsv.sh $@
 
 ctxswitch.csv:
-	@echo "generator,coroutine,thread" > $@
-	@+make ctxswitch-cfa_generator.runquiet >> $@ && echo -n ',' >> $@
-	@+make ctxswitch-cfa_coroutine.runquiet >> $@ && echo -n ',' >> $@
-	@+make ctxswitch-cfa_thread.runquiet >> $@
-	@$(srcdir)/fixcsv.sh $@
+	echo "generator,coroutine,thread" > $@
+	+make ctxswitch-cfa_generator.runquiet >> $@ && echo -n ',' >> $@
+	+make ctxswitch-cfa_coroutine.runquiet >> $@ && echo -n ',' >> $@
+	+make ctxswitch-cfa_thread.runquiet >> $@
+	$(srcdir)/fixcsv.sh $@
 
 mutex.csv:
-	@echo "1-monitor,2-monitor" > $@
-	@+make mutex-cfa1.runquiet >> $@ && echo -n ',' >> $@
-	@+make mutex-cfa2.runquiet >> $@
-	@$(srcdir)/fixcsv.sh $@
+	echo "1-monitor,2-monitor" > $@
+	+make mutex-cfa1.runquiet >> $@ && echo -n ',' >> $@
+	+make mutex-cfa2.runquiet >> $@
+	$(srcdir)/fixcsv.sh $@
 
 signal.csv:
-	@echo "signal-1,signal-2,waitfor-1,waitfor-2" > $@
-	@+make signal-cfa1.runquiet >> $@ && echo -n ',' >> $@
-	@+make signal-cfa2.runquiet >> $@ && echo -n ',' >> $@
-	@+make waitfor-cfa1.runquiet >> $@ && echo -n ',' >> $@
-	@+make waitfor-cfa2.runquiet >> $@
-	@$(srcdir)/fixcsv.sh $@
+	echo "signal-1,signal-2,waitfor-1,waitfor-2" > $@
+	+make signal-cfa1.runquiet >> $@ && echo -n ',' >> $@
+	+make signal-cfa2.runquiet >> $@ && echo -n ',' >> $@
+	+make waitfor-cfa1.runquiet >> $@ && echo -n ',' >> $@
+	+make waitfor-cfa2.runquiet >> $@
+	$(srcdir)/fixcsv.sh $@
 
 %.diff.csv: %.csv
-	@test -e $(srcdir)/baselines/$(arch)/$< || (echo "Error : Missing baseline for ${<}" && false)
-	@$(srcdir)/baselines/calc.py $(srcdir)/baselines/$(arch)/$(<) $(<) > $@
+	test -e $(srcdir)/baselines/$(arch)/$< || (echo "Error : Missing baseline for ${<}" && false)
+	$(srcdir)/baselines/calc.py $(srcdir)/baselines/$(arch)/$(<) $(<) > $@
 
 ## =========================================================================================================
@@ -199,29 +201,29 @@
 
 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
+	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
+	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
+	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
 
 ## =========================================================================================================
@@ -237,5 +239,5 @@
 	ctxswitch-goroutine.run		\
 	ctxswitch-rust_thread.run	\
-	ctxswitch-nodejs_thread.run	\
+	ctxswitch-nodejs_coroutine.run	\
 	ctxswitch-java_thread.run
 
@@ -281,27 +283,31 @@
 	$(BENCH_V_RUSTC)rustc -C opt-level=3 -o a.out $(srcdir)/ctxswitch/rust_thrd.rs
 
+ctxswitch-nodejs_coroutine$(EXEEXT):
+
 ctxswitch-java_thread$(EXEEXT):
 	$(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/ctxswitch/JavaThread.java
-	@echo "#!/bin/sh" > a.out
-	@echo "java JavaThread" >> a.out
-	@chmod a+x a.out
-
-ctxswitch-nodejs.run : ctxswitch-nodejs$(EXEEXT) ${REPEAT}
-	@rm -f .result.log
-	@echo "------------------------------------------------------"
-	@echo $<
-	@${REPEAT} ${repeats} node node_cor.js 50000000 | tee -a .result.log
-	@${STATS} .result.log
-	@echo "------------------------------------------------------"
-	@rm -f a.out .result.log *.class
+	echo "#!/bin/sh" > a.out
+	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
+	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
 
 ## =========================================================================================================
@@ -340,7 +346,7 @@
 mutex-java$(EXEEXT):
 	$(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/mutex/JavaThread.java
-	@echo "#!/bin/sh" > a.out
-	@echo "java JavaThread" >> a.out
-	@chmod a+x a.out
+	echo "#!/bin/sh" > a.out
+	echo "java JavaThread" >> a.out
+	chmod a+x a.out
 
 ## =========================================================================================================
@@ -375,7 +381,7 @@
 signal-java$(EXEEXT):
 	$(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/schedint/JavaThread.java
-	@echo "#!/bin/sh" > a.out
-	@echo "java JavaThread" >> a.out
-	@chmod a+x a.out
+	echo "#!/bin/sh" > a.out
+	echo "java JavaThread" >> a.out
+	chmod a+x a.out
 
 ## =========================================================================================================
@@ -438,7 +444,7 @@
 creation-java$(EXEEXT):
 	$(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/creation/JavaThread.java
-	@echo "#!/bin/sh" > a.out
-	@echo "java JavaThread" >> a.out
-	@chmod a+x a.out
+	echo "#!/bin/sh" > a.out
+	echo "java JavaThread" >> a.out
+	chmod a+x a.out
 
 ## =========================================================================================================
@@ -457,27 +463,27 @@
 
 compile-array$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/array.cfa
+	$(CFACOMPILE) -fsyntax-only -w $(testdir)/array.cfa
 
 compile-attributes$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/attributes.cfa
+	$(CFACOMPILE) -fsyntax-only -w $(testdir)/attributes.cfa
 
 compile-empty$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(srcdir)/compile/empty.cfa
+	$(CFACOMPILE) -fsyntax-only -w $(srcdir)/compile/empty.cfa
 
 compile-expression$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/expression.cfa
+	$(CFACOMPILE) -fsyntax-only -w $(testdir)/expression.cfa
 
 compile-io$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/io1.cfa
+	$(CFACOMPILE) -fsyntax-only -w $(testdir)/io1.cfa
 
 compile-monitor$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/monitor.cfa
+	$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/monitor.cfa
 
 compile-operators$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/operators.cfa
+	$(CFACOMPILE) -fsyntax-only -w $(testdir)/operators.cfa
 
 compile-thread$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/thread.cfa
+	$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/thread.cfa
 
 compile-typeof$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/typeof.cfa
+	$(CFACOMPILE) -fsyntax-only -w $(testdir)/typeof.cfa
Index: benchmark/Makefile.in
===================================================================
--- benchmark/Makefile.in	(revision b4107c815918e9d1300f3381d29c2a863abf7de8)
+++ benchmark/Makefile.in	(revision 580c11b1c29e9c6f588c84b5c0c0947fb1998d70)
@@ -421,5 +421,5 @@
 	ctxswitch-cfa_thread2.run ctxswitch-upp_coroutine.run \
 	ctxswitch-upp_thread.run ctxswitch-goroutine.run \
-	ctxswitch-rust_thread.run ctxswitch-nodejs_thread.run \
+	ctxswitch-rust_thread.run ctxswitch-nodejs_coroutine.run \
 	ctxswitch-java_thread.run $(am__append_1)
 testdir = $(top_srcdir)/tests
@@ -741,9 +741,11 @@
 
 dummyC.c:
-	@echo "int main() { return 0; }" > ${@}
+	echo "int main() { return 0; }" > ${@}
 
 dummyCXX.cpp:
-	@echo "int main() { return 0; }" > ${@}
-
+	echo "int main() { return 0; }" > ${@}
+
+.SILENT:
+.ONESHELL:
 .NOTPARALLEL:
 .PHONY: compile.csv basic.csv ctxswitch.csv mutex.csv signal.csv
@@ -752,37 +754,37 @@
 
 %.run : %$(EXEEXT) ${REPEAT}
-	@rm -f .result.log
-	@echo "------------------------------------------------------"
-	@echo $<
-	@${REPEAT} ${repeats} ./a.out | tee -a .result.log
-	@${STATS} .result.log
-	@echo "------------------------------------------------------"
-	@rm -f a.out .result.log *.class
+	rm -f .result.log
+	echo "------------------------------------------------------"
+	echo $<
+	${REPEAT} ${repeats} ./a.out | tee -a .result.log
+	${STATS} .result.log
+	echo "------------------------------------------------------"
+	rm -f a.out .result.log *.class
 
 %.runquiet :
-	@+make $(basename $@) CFLAGS="-w" __quiet=quiet
-	@taskset -c 1 ./a.out
-	@rm -f a.out
+	+make $(basename $@) CFLAGS="-w" __quiet=quiet
+	taskset -c 1 ./a.out
+	rm -f a.out
 
 %.make :
-	@printf "${PRINT_FORMAT}" $(basename $(subst compile-,,$@))
-	@+/usr/bin/time -f ${TIME_FORMAT} make $(basename $@) 2>&1
+	printf "${PRINT_FORMAT}" $(basename $(subst compile-,,$@))
+	+/usr/bin/time -f ${TIME_FORMAT} make $(basename $@) 2>&1
 
 ${REPEAT} :
-	@+make -C ${abs_top_builddir}/tools repeat
+	+make -C ${abs_top_builddir}/tools repeat
 
 jenkins$(EXEEXT):
 @DOifskipcompile@
-	@+make compile.csv
-	@-+make compile.diff.csv
+	+make compile.csv
+	-+make compile.diff.csv
 @DOendif@
-	@+make basic.csv
-	@-+make basic.diff.csv
-	@+make ctxswitch.csv
-	@-+make ctxswitch.diff.csv
-	@+make mutex.csv
-	@-+make mutex.diff.csv
-	@+make signal.csv
-	@-+make signal.diff.csv
+	+make basic.csv
+	-+make basic.diff.csv
+	+make ctxswitch.csv
+	-+make ctxswitch.diff.csv
+	+make mutex.csv
+	-+make mutex.diff.csv
+	+make signal.csv
+	-+make signal.diff.csv
 @DOifskipcompile@
 	cat compile.csv
@@ -799,46 +801,46 @@
 
 compile.csv:
-	@echo "array,attributes,empty,expression,io,monitor,operators,typeof" > $@
-	@+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-array.make >> $@
-	@+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-attributes.make >> $@
-	@+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-empty.make >> $@
-	@+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-expression.make >> $@
-	@+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-io.make >> $@
-	@+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-monitor.make >> $@
-	@+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-operators.make >> $@
-	@+make TIME_FORMAT='%e' PRINT_FORMAT='' compile-typeof.make >> $@
-	@$(srcdir)/fixcsv.sh $@
+	echo "array,attributes,empty,expression,io,monitor,operators,typeof" > $@
+	+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-array.make >> $@
+	+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-attributes.make >> $@
+	+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-empty.make >> $@
+	+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-expression.make >> $@
+	+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-io.make >> $@
+	+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-monitor.make >> $@
+	+make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-operators.make >> $@
+	+make TIME_FORMAT='%e' PRINT_FORMAT='' compile-typeof.make >> $@
+	$(srcdir)/fixcsv.sh $@
 
 basic.csv:
-	@echo "generator,coroutine,thread" > $@
-	@+make basic-cfa_generator.runquiet >> $@ && echo -n ',' >> $@
-	@+make basic-cfa_coroutine.runquiet >> $@ && echo -n ',' >> $@
-	@+make basic-cfa_thread.runquiet >> $@
-	@$(srcdir)/fixcsv.sh $@
+	echo "generator,coroutine,thread" > $@
+	+make basic-cfa_generator.runquiet >> $@ && echo -n ',' >> $@
+	+make basic-cfa_coroutine.runquiet >> $@ && echo -n ',' >> $@
+	+make basic-cfa_thread.runquiet >> $@
+	$(srcdir)/fixcsv.sh $@
 
 ctxswitch.csv:
-	@echo "generator,coroutine,thread" > $@
-	@+make ctxswitch-cfa_generator.runquiet >> $@ && echo -n ',' >> $@
-	@+make ctxswitch-cfa_coroutine.runquiet >> $@ && echo -n ',' >> $@
-	@+make ctxswitch-cfa_thread.runquiet >> $@
-	@$(srcdir)/fixcsv.sh $@
+	echo "generator,coroutine,thread" > $@
+	+make ctxswitch-cfa_generator.runquiet >> $@ && echo -n ',' >> $@
+	+make ctxswitch-cfa_coroutine.runquiet >> $@ && echo -n ',' >> $@
+	+make ctxswitch-cfa_thread.runquiet >> $@
+	$(srcdir)/fixcsv.sh $@
 
 mutex.csv:
-	@echo "1-monitor,2-monitor" > $@
-	@+make mutex-cfa1.runquiet >> $@ && echo -n ',' >> $@
-	@+make mutex-cfa2.runquiet >> $@
-	@$(srcdir)/fixcsv.sh $@
+	echo "1-monitor,2-monitor" > $@
+	+make mutex-cfa1.runquiet >> $@ && echo -n ',' >> $@
+	+make mutex-cfa2.runquiet >> $@
+	$(srcdir)/fixcsv.sh $@
 
 signal.csv:
-	@echo "signal-1,signal-2,waitfor-1,waitfor-2" > $@
-	@+make signal-cfa1.runquiet >> $@ && echo -n ',' >> $@
-	@+make signal-cfa2.runquiet >> $@ && echo -n ',' >> $@
-	@+make waitfor-cfa1.runquiet >> $@ && echo -n ',' >> $@
-	@+make waitfor-cfa2.runquiet >> $@
-	@$(srcdir)/fixcsv.sh $@
+	echo "signal-1,signal-2,waitfor-1,waitfor-2" > $@
+	+make signal-cfa1.runquiet >> $@ && echo -n ',' >> $@
+	+make signal-cfa2.runquiet >> $@ && echo -n ',' >> $@
+	+make waitfor-cfa1.runquiet >> $@ && echo -n ',' >> $@
+	+make waitfor-cfa2.runquiet >> $@
+	$(srcdir)/fixcsv.sh $@
 
 %.diff.csv: %.csv
-	@test -e $(srcdir)/baselines/$(arch)/$< || (echo "Error : Missing baseline for ${<}" && false)
-	@$(srcdir)/baselines/calc.py $(srcdir)/baselines/$(arch)/$(<) $(<) > $@
+	test -e $(srcdir)/baselines/$(arch)/$< || (echo "Error : Missing baseline for ${<}" && false)
+	$(srcdir)/baselines/calc.py $(srcdir)/baselines/$(arch)/$(<) $(<) > $@
 
 basic-loop$(EXEEXT):
@@ -860,29 +862,29 @@
 
 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
+	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
+	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
+	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):
@@ -921,27 +923,31 @@
 	$(BENCH_V_RUSTC)rustc -C opt-level=3 -o a.out $(srcdir)/ctxswitch/rust_thrd.rs
 
+ctxswitch-nodejs_coroutine$(EXEEXT):
+
 ctxswitch-java_thread$(EXEEXT):
 	$(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/ctxswitch/JavaThread.java
-	@echo "#!/bin/sh" > a.out
-	@echo "java JavaThread" >> a.out
-	@chmod a+x a.out
-
-ctxswitch-nodejs.run : ctxswitch-nodejs$(EXEEXT) ${REPEAT}
-	@rm -f .result.log
-	@echo "------------------------------------------------------"
-	@echo $<
-	@${REPEAT} ${repeats} node node_cor.js 50000000 | tee -a .result.log
-	@${STATS} .result.log
-	@echo "------------------------------------------------------"
-	@rm -f a.out .result.log *.class
+	echo "#!/bin/sh" > a.out
+	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
+	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) :		\
@@ -978,7 +984,7 @@
 mutex-java$(EXEEXT):
 	$(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/mutex/JavaThread.java
-	@echo "#!/bin/sh" > a.out
-	@echo "java JavaThread" >> a.out
-	@chmod a+x a.out
+	echo "#!/bin/sh" > a.out
+	echo "java JavaThread" >> a.out
+	chmod a+x a.out
 
 signal$(EXEEXT) :		\
@@ -1011,7 +1017,7 @@
 signal-java$(EXEEXT):
 	$(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/schedint/JavaThread.java
-	@echo "#!/bin/sh" > a.out
-	@echo "java JavaThread" >> a.out
-	@chmod a+x a.out
+	echo "#!/bin/sh" > a.out
+	echo "java JavaThread" >> a.out
+	chmod a+x a.out
 
 waitfor$(EXEEXT) :		\
@@ -1070,7 +1076,7 @@
 creation-java$(EXEEXT):
 	$(BENCH_V_JAVAC)javac -d $(builddir) $(srcdir)/creation/JavaThread.java
-	@echo "#!/bin/sh" > a.out
-	@echo "java JavaThread" >> a.out
-	@chmod a+x a.out
+	echo "#!/bin/sh" > a.out
+	echo "java JavaThread" >> a.out
+	chmod a+x a.out
 
 compile$(EXEEXT) :		\
@@ -1085,29 +1091,29 @@
 
 compile-array$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/array.cfa
+	$(CFACOMPILE) -fsyntax-only -w $(testdir)/array.cfa
 
 compile-attributes$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/attributes.cfa
+	$(CFACOMPILE) -fsyntax-only -w $(testdir)/attributes.cfa
 
 compile-empty$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(srcdir)/compile/empty.cfa
+	$(CFACOMPILE) -fsyntax-only -w $(srcdir)/compile/empty.cfa
 
 compile-expression$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/expression.cfa
+	$(CFACOMPILE) -fsyntax-only -w $(testdir)/expression.cfa
 
 compile-io$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/io1.cfa
+	$(CFACOMPILE) -fsyntax-only -w $(testdir)/io1.cfa
 
 compile-monitor$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/monitor.cfa
+	$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/monitor.cfa
 
 compile-operators$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/operators.cfa
+	$(CFACOMPILE) -fsyntax-only -w $(testdir)/operators.cfa
 
 compile-thread$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/thread.cfa
+	$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/thread.cfa
 
 compile-typeof$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/typeof.cfa
+	$(CFACOMPILE) -fsyntax-only -w $(testdir)/typeof.cfa
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
