Index: benchmark/Makefile.am
===================================================================
--- benchmark/Makefile.am	(revision 72bd9cd6c750575dac09570b2eaffbb25ee78407)
+++ benchmark/Makefile.am	(revision ebb61587b96bb35f109dc94b4f728ca19751e79d)
@@ -607,9 +607,11 @@
 
 clean-rdq-benches:
-	rm -rf $(RDQBENCHES)
-
-rdq-%-tokio$(EXEEXT): $(srcdir)/readyQ/%.rs $(srcdir)/bench.rs
-	cd $(builddir) && cargo build --release
-	cp $(builddir)/target/release/$(basename $@) $@
+	rm -rf $(RDQBENCHES) $(builddir)/target go.mod
+
+rdq-%-tokio$(EXEEXT): $(builddir)/target/release/rdq-%-tokio$(EXEEXT)
+	$(BENCH_V_RUSTC)cp $(builddir)/target/release/$(basename $@) $@
+
+$(builddir)/target/release/rdq-%-tokio$(EXEEXT): $(srcdir)/readyQ/%.rs $(srcdir)/bench.rs
+	$(BENCH_V_RUSTC)cd $(builddir) && cargo build --release
 
 rdq-%-cfa$(EXEEXT): $(srcdir)/readyQ/%.cfa $(srcdir)/readyQ/rq_bench.hfa
@@ -618,5 +620,5 @@
 go.mod:
 	touch $@
-	go mod edit -module=rdqbench
+	go mod edit -module=rdq.bench
 	go get golang.org/x/sync/semaphore
 	go get golang.org/x/text/language
Index: benchmark/readyQ/cycle.cpp
===================================================================
--- benchmark/readyQ/cycle.cpp	(revision 72bd9cd6c750575dac09570b2eaffbb25ee78407)
+++ 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 72bd9cd6c750575dac09570b2eaffbb25ee78407)
+++ 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 72bd9cd6c750575dac09570b2eaffbb25ee78407)
+++ 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 72bd9cd6c750575dac09570b2eaffbb25ee78407)
+++ 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");
