Index: benchmark/mutex/JavaThread.java
===================================================================
--- benchmark/mutex/JavaThread.java	(revision be53b87bb8b688d529b9f3ca8a4a7bfd47305629)
+++ benchmark/mutex/JavaThread.java	(revision 6e540ea6f2eb5e8c7c9342b94e6f036ca964f3ec)
@@ -26,5 +26,5 @@
 	static int x = 2;
 
-	static private final int NoOfTimes = Integer.parseInt("100000000") ;
+	static private int times = Integer.parseInt("100000000");
 
 	public synchronized void noop() {
@@ -35,5 +35,5 @@
 		// Inhibit biased locking ...
 		x = (j.hashCode() ^ System.identityHashCode(j)) | 1 ;     
-		for(int i = 1; i <= NoOfTimes; i += 1) {
+		for(int i = 1; i <= times; i += 1) {
 			x = nextRandom(x);
 			j.noop();
@@ -44,7 +44,10 @@
 		helper();
 		long end = System.nanoTime();
-		System.out.println( (end - start) / NoOfTimes );
+		System.out.println( (end - start) / times );
 	}
 	public static void main(String[] args) throws InterruptedException {
+		if ( args.length > 2 ) System.exit( 1 );
+		if ( args.length == 2 ) { times = Integer.parseInt(args[1]); }
+
 		for (int n = Integer.parseInt("5"); --n >= 0 ; ) { 
 			InnerMain();
@@ -55,2 +58,6 @@
 	}
 }
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: benchmark/mutex/cfa1.cfa
===================================================================
--- benchmark/mutex/cfa1.cfa	(revision be53b87bb8b688d529b9f3ca8a4a7bfd47305629)
+++ benchmark/mutex/cfa1.cfa	(revision 6e540ea6f2eb5e8c7c9342b94e6f036ca964f3ec)
@@ -7,13 +7,17 @@
 void __attribute__((noinline)) call( M & mutex m ) {}
 
-int main(int argc, char* argv[]) {
+int main( int argc, char * argv[] ) {
+	BENCH_START()
 	M m;
 	BENCH(
-		for ( i; n ) {
-			call(m);
+		for ( i; times ) {
+			call( m );
 		},
 		result
 	)
+	printf( "%g\n", result );
+}
 
-	printf("%g\n", result);
-}
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: benchmark/mutex/cfa2.cfa
===================================================================
--- benchmark/mutex/cfa2.cfa	(revision be53b87bb8b688d529b9f3ca8a4a7bfd47305629)
+++ benchmark/mutex/cfa2.cfa	(revision 6e540ea6f2eb5e8c7c9342b94e6f036ca964f3ec)
@@ -7,13 +7,17 @@
 void __attribute__((noinline)) call( M & mutex m1, M & mutex m2 ) {}
 
-int main(int argc, char* argv[]) {
+int main( int argc, char * argv[] ) {
+	BENCH_START()
 	M m1, m2;
 	BENCH(
-		for ( i; n ) {
-			call(m1, m2);
+		for ( i; times ) {
+			call( m1, m2 );
 		},
 		result
 	)
+	printf( "%g\n", result );
+}
 
-	printf("%g\n", result);
-}
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: benchmark/mutex/cfa4.cfa
===================================================================
--- benchmark/mutex/cfa4.cfa	(revision be53b87bb8b688d529b9f3ca8a4a7bfd47305629)
+++ benchmark/mutex/cfa4.cfa	(revision 6e540ea6f2eb5e8c7c9342b94e6f036ca964f3ec)
@@ -8,13 +8,17 @@
 void __attribute__((noinline)) call( M & mutex m1, M & mutex m2, M & mutex m3, M & mutex m4 ) {}
 
-int main(int argc, char* argv[]) {
+int main( int argc, char * argv[] ) {
+	BENCH_START()
 	M m1, m2, m3, m4;
 	BENCH(
-		for ( i; n ) {
-			call(m1, m2, m3, m4);
+		for ( i; times ) {
+			call( m1, m2, m3, m4 );
 		},
 		result
 	)
+	printf( "%g\n", result );
+}
 
-	printf("%g\n", result);
-}
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: benchmark/mutex/goroutine.go
===================================================================
--- benchmark/mutex/goroutine.go	(revision 6e540ea6f2eb5e8c7c9342b94e6f036ca964f3ec)
+++ benchmark/mutex/goroutine.go	(revision 6e540ea6f2eb5e8c7c9342b94e6f036ca964f3ec)
@@ -0,0 +1,29 @@
+package main
+
+import (
+    "fmt"
+    "time"
+    "flag"
+    "sync"
+)
+
+var mutex sync.Mutex
+
+func call() {
+     mutex.Lock();
+     mutex.Unlock();
+}
+func main() {
+	times := flag.Int( "times", 10000000, "loop iterations" )
+	flag.Parse()
+	start := time.Now()
+	for i := 1; i <= *times; i += 1 {
+		call();
+	}
+	end := time.Now()
+	fmt.Printf( "%d\n", end.Sub(start) / time.Duration(*times) )
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: benchmark/mutex/pthreads.c
===================================================================
--- benchmark/mutex/pthreads.c	(revision be53b87bb8b688d529b9f3ca8a4a7bfd47305629)
+++ benchmark/mutex/pthreads.c	(revision 6e540ea6f2eb5e8c7c9342b94e6f036ca964f3ec)
@@ -7,16 +7,19 @@
 
 void __attribute__((noinline)) call() {
-	 pthread_mutex_lock  (&mutex);
-	 pthread_mutex_unlock(&mutex);
+	 pthread_mutex_lock( &mutex );
+	 pthread_mutex_unlock( &mutex );
 }
-
-int main(int argc, char* argv[]) {
+int main( int argc, char * argv[] ) {
+	BENCH_START()
 	BENCH(
-		for (size_t i = 0; i < n; i++) {
+		for ( size_t i = 0; i < times; i++ ) {
 			call();
 		},
 		result
 	)
+	printf( "%g\n", result );
+}
 
-	printf("%g\n", result);
-}
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: benchmark/mutex/rust.rs
===================================================================
--- benchmark/mutex/rust.rs	(revision 6e540ea6f2eb5e8c7c9342b94e6f036ca964f3ec)
+++ benchmark/mutex/rust.rs	(revision 6e540ea6f2eb5e8c7c9342b94e6f036ca964f3ec)
@@ -0,0 +1,29 @@
+use std::env;
+use std::process;
+use std::sync::Mutex;
+use std::time::Instant;
+
+fn call( lock : & Mutex<u32> ) {
+	let _ = lock.lock();
+}
+
+fn main() {
+	let mut times : u32 = 50000000;
+	let args: Vec<String> = env::args().collect();
+	if args.len() > 2 { process::exit( 1 ); }
+	if args.len() == 2 { times = args[1].parse().unwrap(); }
+
+	let lock = Mutex::new(0);
+
+	let start = Instant::now();
+	for _ in 1..times {
+		call( &lock );
+	}
+	let duration = start.elapsed() / times;
+	println!( "{:?}", duration.as_nanos() )
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// compile-command: "rustc -C opt-level=3 rust.rs" //
+// End: //
Index: benchmark/mutex/upp.cc
===================================================================
--- benchmark/mutex/upp.cc	(revision be53b87bb8b688d529b9f3ca8a4a7bfd47305629)
+++ benchmark/mutex/upp.cc	(revision 6e540ea6f2eb5e8c7c9342b94e6f036ca964f3ec)
@@ -8,13 +8,17 @@
 };
 
-int main(int argc, char* argv[]) {
+int main( int argc, char * argv[] ) {
+	BENCH_START()
 	MyMonitor m;
 	BENCH(
-		for (size_t i = 0; i < n; i++) {
+		for ( size_t i = 0; i < times; i++ ) {
 			m.call();
 		},
 		result
 	)
+	printf( "%g\n", result );
+}
 
-	printf("%g\n", result);
-}
+// Local Variables: //
+// tab-width: 4 //
+// End: //
