Index: benchmark/readyQ/cycle.cfa
===================================================================
--- benchmark/readyQ/cycle.cfa	(revision 8fe35be6c47f9dc4cc0c7b63da8d00302dc81249)
+++ benchmark/readyQ/cycle.cfa	(revision dd33c1f4ee8e23b2956d02571e0614fdf0a438d4)
@@ -55,5 +55,5 @@
 			Partner * thddata = alloc(tthreads);
 			for(i; tthreads) {
-				(thddata[pi]){};
+				(thddata[i]){};
 				unsigned pi = (i + nthreads) % tthreads;
 				thddata[i].next = &thddata[pi].self;
Index: benchmark/readyQ/cycle.cpp
===================================================================
--- benchmark/readyQ/cycle.cpp	(revision 8fe35be6c47f9dc4cc0c7b63da8d00302dc81249)
+++ benchmark/readyQ/cycle.cpp	(revision dd33c1f4ee8e23b2956d02571e0614fdf0a438d4)
@@ -39,6 +39,6 @@
 		{
 			threads_left = tthreads;
-			Fibre * threads = new Fibre *[tthreads]();
-			Partner thddata = new Partner[tthreads]();
+			Fibre ** threads = new Fibre *[tthreads]();
+			Partner* thddata = new Partner[tthreads]();
 			for(unsigned i = 0; i < tthreads; i++) {
 				unsigned pi = (i + nthreads) % tthreads;
Index: benchmark/readyQ/locality.cpp
===================================================================
--- benchmark/readyQ/locality.cpp	(revision 8fe35be6c47f9dc4cc0c7b63da8d00302dc81249)
+++ benchmark/readyQ/locality.cpp	(revision dd33c1f4ee8e23b2956d02571e0614fdf0a438d4)
@@ -240,5 +240,6 @@
 					i
 				);
-				threads[i] = new Fibre( reinterpret_cast<void (*)(void *)>(thread_main), thddata[i] );
+				threads[i] = new Fibre();
+				threads[i]->run( reinterpret_cast<void (*)(MyCtx*)>(thread_main), thddata[i] );
 			}
 
