Index: benchmark/schedext/upp.cc
===================================================================
--- benchmark/schedext/upp.cc	(revision 2316525c0ab1029715c0c8bc2f6fe53ca84525fe)
+++ benchmark/schedext/upp.cc	(revision e068c8a8da15b590c9ee6dc1bf9fefcffcc2b1dc)
@@ -3,17 +3,11 @@
 #include "bench.h"
 
-volatile int go = 0;
-
 _Monitor M {
 public:
 	void __attribute__((noinline)) call() {}
-
-	int __attribute__((noinline)) wait() {
-		go = 1;
+	void __attribute__((noinline)) wait() {
 		for ( size_t i = 0; i < times; i++ ) {
 			_Accept(call);
 		}
-		go = 0;
-		return 0;
 	}
 } m;
@@ -21,7 +15,8 @@
 _Task T {
 	void main() {
-		while ( go == 0 ) { yield(); }
 		BENCH(
-			while ( go == 1 ) { m.call(); },
+			for ( size_t i = 0; i < times; i++ ) {
+				m.call();
+			},
 			result
 		)
@@ -33,5 +28,5 @@
 	BENCH_START()
 	T t;
-	return m.wait();
+	m.wait();
 }
 
