Index: benchmark/Makefile.am
===================================================================
--- benchmark/Makefile.am	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/Makefile.am	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -11,6 +11,6 @@
 ## Created On       : Sun May 31 09:08:15 2015
 ## Last Modified By : Peter A. Buhr
-## Last Modified On : Fri Jan 10 11:29:52 2020
-## Update Count     : 230
+## Last Modified On : Sun Jan 19 12:55:02 2020
+## Update Count     : 232
 ###############################################################################
 
@@ -83,4 +83,5 @@
 basic_loop_DURATION = 15000000000
 basic_function_DURATION = 10000000000
+basic_tls_fetch_add_DURATION = 10000000000
 basic_DURATION = 250000000
 
@@ -291,5 +292,5 @@
 ctxswitch-nodejs_coroutine$(EXEEXT):
 	echo "#!/bin/sh" > a.out
-	echo "node $(srcdir)/ctxswitch/node_cor.js" >> a.out
+	echo "nodejs $(srcdir)/ctxswitch/node_cor.js" >> a.out
 	chmod a+x a.out
 
@@ -434,5 +435,5 @@
 creation-nodejs_coroutine$(EXEEXT):
 	echo "#!/bin/sh" > a.out
-	echo "node $(srcdir)/creation/node_cor.js" >> a.out
+	echo "nodejs $(srcdir)/creation/node_cor.js" >> a.out
 	chmod a+x a.out
 
Index: benchmark/Makefile.in
===================================================================
--- benchmark/Makefile.in	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/Makefile.in	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -421,4 +421,5 @@
 basic_loop_DURATION = 15000000000
 basic_function_DURATION = 10000000000
+basic_tls_fetch_add_DURATION = 10000000000
 basic_DURATION = 250000000
 ctxswitch_pthread_DURATION = 25000000
@@ -933,5 +934,5 @@
 ctxswitch-nodejs_coroutine$(EXEEXT):
 	echo "#!/bin/sh" > a.out
-	echo "node $(srcdir)/ctxswitch/node_cor.js" >> a.out
+	echo "nodejs $(srcdir)/ctxswitch/node_cor.js" >> a.out
 	chmod a+x a.out
 
@@ -1068,5 +1069,5 @@
 creation-nodejs_coroutine$(EXEEXT):
 	echo "#!/bin/sh" > a.out
-	echo "node $(srcdir)/creation/node_cor.js" >> a.out
+	echo "nodejs $(srcdir)/creation/node_cor.js" >> a.out
 	chmod a+x a.out
 
Index: benchmark/creation/cfa_cor.cfa
===================================================================
--- benchmark/creation/cfa_cor.cfa	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/creation/cfa_cor.cfa	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -5,16 +5,16 @@
 
 coroutine MyCoroutine {};
-void ?{} (MyCoroutine & this) {
+void ?{}( MyCoroutine & this ) {
 #ifdef EAGER
-	resume(this);
+	resume( this );
 #endif
 }
-void main(MyCoroutine &) {}
+void main( MyCoroutine & ) {}
 
 int main( int argc, char * argv[] ) {
 	BENCH_START()
 	BENCH(
-		for ( i; times ) {
-			MyCoroutine m;
+		for ( times ) {
+			MyCoroutine c;
 		},
 		result
Index: benchmark/creation/cfa_thrd.cfa
===================================================================
--- benchmark/creation/cfa_thrd.cfa	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/creation/cfa_thrd.cfa	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -10,5 +10,5 @@
 	BENCH_START()
 	BENCH(
-		for ( i; times ) {
+		for ( times ) {
 			MyThread m;
 		},
Index: benchmark/creation/node_cor.js
===================================================================
--- benchmark/creation/node_cor.js	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/creation/node_cor.js	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -4,6 +4,5 @@
 if ( argc == 3 ) times = Number( process.argv[2] )
 
-function * coroutine() {
-}
+function * coroutine() {}
 var hrstart = process.hrtime()
 for ( var i = 0; i < times; i += 1 ) {
Index: benchmark/ctxswitch/cfa_cor.cfa
===================================================================
--- benchmark/ctxswitch/cfa_cor.cfa	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/ctxswitch/cfa_cor.cfa	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -4,7 +4,7 @@
 #include "bench.h"
 
-coroutine GreatSuspender {};
-void main( __attribute__((unused)) GreatSuspender & this ) {
-	while ( true ) {
+coroutine C {} c;
+void main( __attribute__((unused)) C & ) {
+	while () {
 		suspend();
 	}
@@ -12,8 +12,7 @@
 int main( int argc, char * argv[] ) {
 	BENCH_START()
-	GreatSuspender s;
 	BENCH(
-		for ( i; times ) {
-			resume( s );
+		for ( times ) {
+			resume( c );
 		},
 		result
Index: benchmark/ctxswitch/cfa_cor_then.cfa
===================================================================
--- benchmark/ctxswitch/cfa_cor_then.cfa	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/ctxswitch/cfa_cor_then.cfa	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -6,12 +6,12 @@
 void noOp(void) {}
 
-coroutine GreatSuspender {};
+coroutine C {} c;
 
-void ?{}( GreatSuspender & this ) {
+void ?{}( C & this ) {
 	prime(this);
 }
 
-void main( __attribute__((unused)) GreatSuspender & this ) {
-	while( true ) {
+void main( __attribute__((unused)) C & this ) {
+	while () {
 		suspend_then(noOp);
 	}
@@ -20,8 +20,7 @@
 int main( int argc, char * argv[] ) {
 	BENCH_START()
-	GreatSuspender s;
 	BENCH(
-		for ( i; times ) {
-			resume( s );
+		for ( times ) {
+			resume( c );
 		},
 		result
Index: benchmark/ctxswitch/cfa_gen.cfa
===================================================================
--- benchmark/ctxswitch/cfa_gen.cfa	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/ctxswitch/cfa_gen.cfa	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -3,9 +3,9 @@
 typedef struct {
 	void * next;
-} GreatSuspender;
+} C;
 
-void comain( GreatSuspender * this ) {
-	if ( __builtin_expect(this->next != 0, 1) ) goto *(this->next);
-	this->next = &&s1;
+void comain( C * c ) {
+	if ( __builtin_expect(c->next != 0, 1) ) goto *(c->next);
+	c->next = &&s1;
 	for () {
 		return;
@@ -16,8 +16,8 @@
 int main( int argc, char * argv[] ) {
 	BENCH_START()
-	GreatSuspender s = { 0 };
+	C c = { 0 };
 	BENCH(
-		for ( i; times ) {
-			comain( &s );
+		for ( times ) {
+			comain( &c );
 		},
 		result
Index: benchmark/ctxswitch/cfa_thrd.cfa
===================================================================
--- benchmark/ctxswitch/cfa_thrd.cfa	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/ctxswitch/cfa_thrd.cfa	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -6,5 +6,5 @@
 	BENCH_START()
 	BENCH(
-		for ( i; times ) {
+		for ( times ) {
 			yield();
 		},
Index: benchmark/ctxswitch/cfa_thrd2.cfa
===================================================================
--- benchmark/ctxswitch/cfa_thrd2.cfa	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/ctxswitch/cfa_thrd2.cfa	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -8,5 +8,5 @@
 
 void main(__attribute__((unused)) Fibre & this) {
-	while(!done) {
+	while ( ! done ) {
 		yield();
 	}
@@ -17,5 +17,5 @@
 	Fibre f1;
   	BENCH(
-		for ( i; times ) {
+		for ( times ) {
 			yield();
 		},
Index: benchmark/ctxswitch/python_cor.py
===================================================================
--- benchmark/ctxswitch/python_cor.py	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/ctxswitch/python_cor.py	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -9,13 +9,13 @@
 	times = int( sys.argv[1] )
 
-def GreatSuspender():
+def C():
 	while True:
 		yield
 
-s = GreatSuspender()
+c = C()
 
 start = time.time_ns()
 for i in range( 10000000 ):
-	next( s )  # resume
+	next( c )  # resume
 end = time.time_ns()
 print( (end - start) / times )
Index: benchmark/ctxswitch/upp_cor.cc
===================================================================
--- benchmark/ctxswitch/upp_cor.cc	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/ctxswitch/upp_cor.cc	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -3,5 +3,5 @@
 #include "bench.h"
 
-_Coroutine GreatSuspender {
+_Coroutine C {
 	void main() {
 		while( true ) {
@@ -13,11 +13,10 @@
 		resume();
 	}
-};
+} c;
 int main( int argc, char * argv[] ) {
 	BENCH_START()
-	GreatSuspender s;
 	BENCH(
 		for (size_t i = 0; i < times; i++) {
-			s.do_resume();
+			c.do_resume();
 		},
 		result
Index: benchmark/mutex/cfa1.cfa
===================================================================
--- benchmark/mutex/cfa1.cfa	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/mutex/cfa1.cfa	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -4,13 +4,12 @@
 #include "bench.h"
 
-monitor M {};
-void __attribute__((noinline)) call( M & mutex m ) {}
+monitor M {} m1;
+void __attribute__((noinline)) call( M & mutex p1 ) {}
 
 int main( int argc, char * argv[] ) {
 	BENCH_START()
-	M m;
 	BENCH(
-		for ( i; times ) {
-			call( m );
+		for ( times ) {
+			call( m1 );
 		},
 		result
Index: benchmark/mutex/cfa2.cfa
===================================================================
--- benchmark/mutex/cfa2.cfa	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/mutex/cfa2.cfa	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -4,12 +4,12 @@
 #include "bench.h"
 
-monitor M {};
-void __attribute__((noinline)) call( M & mutex m1, M & mutex m2 ) {}
+monitor M {} m1, m2;
+
+void __attribute__((noinline)) call( M & mutex p1, M & mutex p2 ) {}
 
 int main( int argc, char * argv[] ) {
 	BENCH_START()
-	M m1, m2;
 	BENCH(
-		for ( i; times ) {
+		for ( times ) {
 			call( m1, m2 );
 		},
Index: benchmark/mutex/cfa4.cfa
===================================================================
--- benchmark/mutex/cfa4.cfa	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/mutex/cfa4.cfa	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -5,12 +5,11 @@
 
 
-monitor M {};
-void __attribute__((noinline)) call( M & mutex m1, M & mutex m2, M & mutex m3, M & mutex m4 ) {}
+monitor M {} m1, m2, m3, m4;
+void __attribute__((noinline)) call( M & mutex p1, M & mutex p2, M & mutex p3, M & mutex p4 ) {}
 
 int main( int argc, char * argv[] ) {
 	BENCH_START()
-	M m1, m2, m3, m4;
 	BENCH(
-		for ( i; times ) {
+		for ( times ) {
 			call( m1, m2, m3, m4 );
 		},
Index: benchmark/mutexC/cfa1.cfa
===================================================================
--- benchmark/mutexC/cfa1.cfa	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/mutexC/cfa1.cfa	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -11,5 +11,5 @@
 void call() {
 	go = true;
-	for ( i; times ) {
+	for ( times ) {
 		call( m );
 	}
Index: benchmark/mutexC/cfa2.cfa
===================================================================
--- benchmark/mutexC/cfa2.cfa	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/mutexC/cfa2.cfa	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -11,5 +11,5 @@
 void call() {
 	go = true;
-	for ( i; times ) {
+	for ( times ) {
 		call( m1, m2 );
 	}
Index: benchmark/mutexC/cfa4.cfa
===================================================================
--- benchmark/mutexC/cfa4.cfa	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/mutexC/cfa4.cfa	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -11,5 +11,5 @@
 void call() {
 	go = true;
-	for ( i; times ) {
+	for ( times ) {
 		call( m1, m2, m3, m4 );
 	}
Index: benchmark/schedext/cfa1.cfa
===================================================================
--- benchmark/schedext/cfa1.cfa	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/schedext/cfa1.cfa	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -4,28 +4,25 @@
 #include <stdio.h>
 
-#include "bench.h"
+#include "../bench.h"
 
 volatile int go = 0;
 
-monitor M {};
-M m1;
+monitor M {} m1;
 
-void __attribute__((noinline)) call( M & mutex a1 ) {}
+void __attribute__((noinline)) call( M & mutex p1 ) {}
 
-int  __attribute__((noinline)) wait( M & mutex a1 ) {
+void __attribute__((noinline)) wait( M & mutex p1 ) {
 	go = 1;
-	for ( i; times ) {
-		waitfor(call : a1);
+	for ( times ) {
+		waitfor( call : p1 );
 	}
 	go = 0;
-	return 0;
 }
 
 thread T {};
-void ^?{}( T & mutex this ) {}
 void main( T & ) {
-	while(go == 0) { yield(); }
+	while ( go == 0 ) { yield(); }
 	BENCH(
-		while(go == 1) { call(m1); },
+		while ( go == 1 ) { call( m1 ); },
 		result
 	)
@@ -36,5 +33,5 @@
 	BENCH_START()
 	T t;
-	return wait( m1 );
+	wait( m1 );
 }
 
Index: benchmark/schedext/cfa2.cfa
===================================================================
--- benchmark/schedext/cfa2.cfa	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/schedext/cfa2.cfa	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -8,24 +8,21 @@
 volatile int go = 0;
 
-monitor M {};
-M m1, m2;
+monitor M {} m1, m2;
 
-void __attribute__((noinline)) call( M & mutex a1, M & mutex a2 ) {}
+void __attribute__((noinline)) call( M & mutex p1, M & mutex p2 ) {}
 
-int  __attribute__((noinline)) wait( M & mutex a1, M & mutex a2 ) {
+void __attribute__((noinline)) wait( M & mutex p1, M & mutex p2 ) {
 	go = 1;
-	for ( i; times ) {
-		waitfor(call : a1, a2);
+	for ( times ) {
+		waitfor( call : p1, p2 );
 	}
 	go = 0;
-	return 0;
 }
 
 thread T {};
-void ^?{}( T & mutex this ) {}
 void main( T & ) {
-	while(go == 0) { yield(); }
+	while( go == 0 ) { yield(); }
 	BENCH(
-		while(go == 1) { call(m1, m2); },
+		while ( go == 1 ) { call( m1, m2 ); },
 		result
 	)
@@ -36,5 +33,5 @@
 	BENCH_START()
 	T t;
-	return wait( m1, m2 );
+	wait( m1, m2 );
 }
 
Index: benchmark/schedext/cfa4.cfa
===================================================================
--- benchmark/schedext/cfa4.cfa	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/schedext/cfa4.cfa	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -8,24 +8,21 @@
 volatile int go = 0;
 
-monitor M {};
-M m1, m2, m3, m4;
+monitor M {} m1, m2, m3, m4;
 
-void __attribute__((noinline)) call( M & mutex a1, M & mutex a2, M & mutex a3, M & mutex a4 ) {}
+void __attribute__((noinline)) call( M & mutex p1, M & mutex p2, M & mutex p3, M & mutex p4 ) {}
 
-int  __attribute__((noinline)) wait( M & mutex a1, M & mutex a2, M & mutex a3, M & mutex a4 ) {
+void __attribute__((noinline)) wait( M & mutex p1, M & mutex p2, M & mutex p3, M & mutex p4 ) {
 	go = 1;
-	for ( i; times ) {
-		waitfor( call : a1, a2, a3, a4 );
+	for ( times ) {
+		waitfor( call : p1, p2, p3, p4 );
 	}
 	go = 0;
-	return 0;
 }
 
 thread T {};
-void ^?{}( T & mutex this ) {}
 void main( T & ) {
-	while(go == 0) { yield(); }
+	while( go == 0 ) { yield(); }
 	BENCH(
-		while(go == 1) { call(m1, m2, m3, m4); },
+		while( go == 1 ) { call( m1, m2, m3, m4 ); },
 		result
 	)
@@ -36,5 +33,5 @@
 	BENCH_START()
 	T t;
-	return wait( m1, m2, m3, m4 );
+	wait( m1, m2, m3, m4 );
 }
 
Index: benchmark/schedext/upp.cc
===================================================================
--- benchmark/schedext/upp.cc	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/schedext/upp.cc	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -11,5 +11,5 @@
 	int __attribute__((noinline)) wait() {
 		go = 1;
-		for (size_t i = 0; i < times; i++) {
+		for ( size_t i = 0; i < times; i++ ) {
 			_Accept(call);
 		}
@@ -17,13 +17,11 @@
 		return 0;
 	}
-};
-
-M m;
+} m;
 
 _Task T {
 	void main() {
-		while(go == 0) { yield(); }
+		while ( go == 0 ) { yield(); }
 		BENCH(
-			while(go == 1) { m.call(); },
+			while ( go == 1 ) { m.call(); },
 			result
 		)
Index: benchmark/schedint/cfa1.cfa
===================================================================
--- benchmark/schedint/cfa1.cfa	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/schedint/cfa1.cfa	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -4,35 +4,30 @@
 #include <stdio.h>
 
-#include "bench.h"
+#include "../bench.h"
 
 volatile int go = 0;
+condition c;
+monitor M {} m1;
 
-condition c;
-monitor M {};
-M m1;
-
-void __attribute__((noinline)) call( M & mutex a1 ) {
-	signal(c);
+void __attribute__((noinline)) call( M & mutex p1 ) {
+	signal( c );
 }
 
-int  __attribute__((noinline)) wait( M & mutex a1 ) {
+void __attribute__((noinline)) wait( M & mutex p1 ) {
 	go = 1;
+	for ( times ) {
+		wait( c );
+	}
+	go = 0;
+}
+
+thread T {};
+void main( T & ) {
+	while ( go == 0 ) { yield(); }
 	BENCH(
-		for ( i; times ) {
-			wait(c);
-		},
+		while ( go == 1 ) { call( m1 ); },
 		result
 	)
 	printf( "%g\n", result );
-	go = 0;
-	return 0;
-}
-
-thread T {};
-void ^?{}( T & mutex ) {}
-void main( T & ) {
-	while(go == 0) { yield(); }
-	while(go == 1) { call(m1); }
-
 }
 
@@ -40,5 +35,5 @@
 	BENCH_START()
 	T t;
-	return wait(m1);
+	wait( m1 );
 }
 
Index: benchmark/schedint/cfa2.cfa
===================================================================
--- benchmark/schedint/cfa2.cfa	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/schedint/cfa2.cfa	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -4,35 +4,30 @@
 #include <stdio.h>
 
-#include "bench.h"
+#include "../bench.h"
 
 volatile int go = 0;
+condition c;
+monitor M {} m1, m2;
 
-condition c;
-monitor M {};
-M m1, m2;
-
-void __attribute__((noinline)) call( M & mutex a1, M & mutex a2 ) {
-	signal(c);
+void __attribute__((noinline)) call( M & mutex p1, M & mutex p2 ) {
+	signal( c );
 }
 
-int  __attribute__((noinline)) wait( M & mutex a1, M & mutex a2 ) {
+void __attribute__((noinline)) wait( M & mutex p1, M & mutex p2 ) {
 	go = 1;
+	for ( times ) {
+		wait( c );
+	}
+	go = 0;
+}
+
+thread T {};
+void main( T & ) {
+	while ( go == 0 ) { yield(); }
 	BENCH(
-		for ( i; times ) {
-			wait(c);
-		},
+		while ( go == 1 ) { call( m1, m2 ); },
 		result
 	)
 	printf( "%g\n", result );
-	go = 0;
-	return 0;
-}
-
-thread T {};
-void ^?{}( T & mutex this ) {}
-void main( T & ) {
-	while(go == 0) { yield(); }
-	while(go == 1) { call(m1, m2); }
-
 }
 
@@ -40,5 +35,5 @@
 	BENCH_START()
 	T t;
-	return wait(m1, m2);
+	wait( m1, m2 );
 }
 
Index: benchmark/schedint/cfa4.cfa
===================================================================
--- benchmark/schedint/cfa4.cfa	(revision cca568e32a0a35aff9eb80fa5e403e3d338d349e)
+++ benchmark/schedint/cfa4.cfa	(revision f090750e8e92963c13fdc0f75431e9f64b438b80)
@@ -7,32 +7,27 @@
 
 volatile int go = 0;
+condition c;
+monitor M {} m1, m2, m3, m4;
 
-condition c;
-monitor M {};
-M m1, m2, m3, m4;
-
-void __attribute__((noinline)) call( M & mutex a1, M & mutex a2, M & mutex a3, M & mutex a4 ) {
-	signal(c);
+void __attribute__((noinline)) call( M & mutex p1, M & mutex p2, M & mutex p3, M & mutex p4 ) {
+	signal( c );
 }
 
-int  __attribute__((noinline)) wait( M & mutex a1, M & mutex a2, M & mutex a3, M & mutex a4 ) {
+void __attribute__((noinline)) wait( M & mutex p1, M & mutex p2, M & mutex p3, M & mutex p4 ) {
 	go = 1;
+	for ( times ) {
+		wait( c );
+	}
+	go = 0;
+}
+
+thread T {};
+void main( T & ) {
+	while ( go == 0 ) { yield(); }
 	BENCH(
-		for ( i; times ) {
-			wait(c);
-		},
+		while ( go == 1 ) { call( m1, m2, m3, m4 ); },
 		result
 	)
 	printf( "%g\n", result );
-	go = 0;
-	return 0;
-}
-
-thread T {};
-void ^?{}( T & mutex this ) {}
-void main( T & ) {
-	while(go == 0) { yield(); }
-	while(go == 1) { call(m1, m2, m3, m4); }
-
 }
 
@@ -40,5 +35,5 @@
 	BENCH_START()
 	T t;
-	return wait(m1, m2, m3, m4);
+	wait( m1, m2, m3, m4 );
 }
 
