Index: benchmark/readyQ/cycle.cpp
===================================================================
--- benchmark/readyQ/cycle.cpp	(revision 821c534aa3eaeb777a33fb9c44f8effeb9f54b85)
+++ benchmark/readyQ/cycle.cpp	(revision ebb61587b96bb35f109dc94b4f728ca19751e79d)
@@ -41,9 +41,9 @@
 			Fibre * threads[tthreads];
 			Partner thddata[tthreads];
-			for(int i = 0; i < tthreads; i++) {
+			for(unsigned i = 0; i < tthreads; i++) {
 				unsigned pi = (i + nthreads) % tthreads;
 				thddata[i].next = &thddata[pi].self;
 			}
-			for(int i = 0; i < tthreads; i++) {
+			for(unsigned i = 0; i < tthreads; i++) {
 				threads[i] = new Fibre( reinterpret_cast<void (*)(void *)>(partner_main), &thddata[i] );
 			}
@@ -53,5 +53,5 @@
 			start = timeHiRes();
 
-			for(int i = 0; i < nthreads; i++) {
+			for(unsigned i = 0; i < nthreads; i++) {
 				thddata[i].self.post();
 			}
@@ -62,5 +62,5 @@
 			printf("\nDone\n");
 
-			for(int i = 0; i < tthreads; i++) {
+			for(unsigned i = 0; i < tthreads; i++) {
 				thddata[i].self.post();
 				fibre_join( threads[i], nullptr );
Index: benchmark/readyQ/locality.rs
===================================================================
--- benchmark/readyQ/locality.rs	(revision 821c534aa3eaeb777a33fb9c44f8effeb9f54b85)
+++ benchmark/readyQ/locality.rs	(revision ebb61587b96bb35f109dc94b4f728ca19751e79d)
@@ -124,6 +124,6 @@
 						return (r as *mut MyData, true);
 					}
-					let got = self.ptr.compare_and_swap(expected, ctx as *mut MyCtx as u64, Ordering::SeqCst);
-					if got == expected {
+					let got = self.ptr.compare_exchange_weak(expected, ctx as *mut MyCtx as u64, Ordering::SeqCst, Ordering::SeqCst);
+					if got == Ok(expected) {
 						break expected;// We got the seat
 					}
Index: benchmark/readyQ/transfer.cfa
===================================================================
--- benchmark/readyQ/transfer.cfa	(revision 821c534aa3eaeb777a33fb9c44f8effeb9f54b85)
+++ benchmark/readyQ/transfer.cfa	(revision ebb61587b96bb35f109dc94b4f728ca19751e79d)
@@ -39,4 +39,5 @@
 			Pause();
 			if( (timeHiRes() - start) > 5`s ) {
+				print_stats_now( bench_cluster, CFA_STATS_READY_Q | CFA_STATS_IO );
 				serr | "Programs has been blocked for more than 5 secs";
 				exit(1);
@@ -110,5 +111,5 @@
 	cfa_option opt[] = {
 		BENCH_OPT,
-		{ 'e', "exhaust", "Whether or not threads that have seen the new epoch should yield or park.", exhaust, parse_yesno}
+		{ 'e', "exhaust", "Whether or not threads that have seen the new epoch should park instead of yielding.", exhaust, parse_yesno}
 	};
 	BENCH_OPT_PARSE("cforall transition benchmark");
Index: benchmark/readyQ/transfer.rs
===================================================================
--- benchmark/readyQ/transfer.rs	(revision 821c534aa3eaeb777a33fb9c44f8effeb9f54b85)
+++ benchmark/readyQ/transfer.rs	(revision ebb61587b96bb35f109dc94b4f728ca19751e79d)
@@ -4,4 +4,5 @@
 use std::process;
 use std::option;
+use std::hint;
 use std::sync::Arc;
 use std::sync::atomic::{AtomicUsize, Ordering};
@@ -104,5 +105,5 @@
 		debug!( "Waiting for :{} ({})", t.id, t.idx.load(Ordering::Relaxed) );
 		while t.idx.load(Ordering::Relaxed) != idx {
-			std::sync::atomic::spin_loop_hint();
+			hint::spin_loop();
 			if start.elapsed() > Duration::from_secs(5) {
 				eprintln!("Programs has been blocked for more than 5 secs");
