Index: benchmark/ctxswitch/cfa_gen.cfa
===================================================================
--- benchmark/ctxswitch/cfa_gen.cfa	(revision fe065c3c42c9e08bf80ddecebb309b0e8eed42ea)
+++ benchmark/ctxswitch/cfa_gen.cfa	(revision fe065c3c42c9e08bf80ddecebb309b0e8eed42ea)
@@ -0,0 +1,27 @@
+#include "../bench.h"
+
+typedef struct {
+	void * next;
+} GreatSuspender;
+
+void comain( GreatSuspender * this ) {
+    if ( __builtin_expect(this->next != 0, 1) ) goto *(this->next);
+    this->next = &&s1;
+	for () {
+	    return;
+	  s1: ;
+	}
+}
+
+int main(int argc, char* argv[]) {
+    GreatSuspender s = { 0 };
+
+	BENCH(
+		for ( i; n ) {
+			comain( &s );
+		},
+		result
+	)
+
+	printf("%g\n", result);
+}
Index: benchmark/ctxswitch/qthreads.c
===================================================================
--- benchmark/ctxswitch/qthreads.c	(revision fe065c3c42c9e08bf80ddecebb309b0e8eed42ea)
+++ benchmark/ctxswitch/qthreads.c	(revision fe065c3c42c9e08bf80ddecebb309b0e8eed42ea)
@@ -0,0 +1,45 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <unistd.h>
+#include <qthread.h>
+
+#include "bench.h"
+
+int argc;
+char **argv;
+
+static aligned_t greeter( __attribute__((unused)) void * arg ) {
+	BENCH(
+		for ( size_t i = 0; i < n; i += 1 ) {
+			qthread_yield();
+		},
+		result
+	)
+	printf( "%g\n", result );
+	return 0;
+}
+
+int main( int margc, char *margv[] ) {
+	argc = margc;
+	argv = margv;
+
+	aligned_t return_value = 0;
+	int status;
+
+	status = qthread_init( 1 );
+	assert(status == QTHREAD_SUCCESS);
+
+	status = qthread_fork( greeter, NULL, &return_value );
+	assert(status == QTHREAD_SUCCESS);
+
+	int ret = qthread_readFF( NULL, &return_value );
+	assert(ret == QTHREAD_SUCCESS);
+
+	return EXIT_SUCCESS;
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// compile-command: "gcc -g -O2 -Wall -I.. -I/u/pabuhr/software/qthreads/include -L/u/pabuhr/software/qthreads/lib -Xlinker -R/u/pabuhr/software/qthreads/lib qthreads.c -lqthread" //
+// End: //
