Index: tests/concurrency/channels/barrier.cfa
===================================================================
--- tests/concurrency/channels/barrier.cfa	(revision cb344f7e70ae31d9cc1a7f22b1908bb85e3a2618)
+++ tests/concurrency/channels/barrier.cfa	(revision 50be8af55788ecaebbb85845d1e11234cd6a5cb6)
@@ -8,5 +8,5 @@
 
 size_t total_operations = 0;
-int Processors = 1, Tasks = 5, BarrierSize = 2;
+ssize_t Processors = 1, Tasks = 5, BarrierSize = 2;		// must be signed
 
 typedef channel( int ) Channel;
@@ -65,21 +65,19 @@
 	  case 3:
 		if ( strcmp( argv[2], "d" ) != 0 ) {			// default ?
-			BarrierSize = atoi( argv[2] );
-            if ( Processors < 1 ) goto Usage;
+			BarrierSize = ato( argv[2] );
+            if ( Processors < 1 ) fallthru default;
 		} // if
 	  case 2:
 		if ( strcmp( argv[1], "d" ) != 0 ) {			// default ?
-			Processors = atoi( argv[1] );
-			if ( Processors < 1 ) goto Usage;
+			Processors = ato( argv[1] );
+			if ( Processors < 1 ) fallthru default;
 		} // if
 	  case 1:											// use defaults
 		break;
 	  default:
-	  Usage:
-		sout | "Usage: " | argv[0]
+		exit | "Usage: " | argv[0]
              | " [ processors (> 0) | 'd' (default " | Processors
 			 | ") ] [ BarrierSize (> 0) | 'd' (default " | BarrierSize
 			 | ") ]" ;
-		exit( EXIT_FAILURE );
 	} // switch
     if ( Tasks < BarrierSize )
Index: tests/concurrency/channels/big_elems.cfa
===================================================================
--- tests/concurrency/channels/big_elems.cfa	(revision cb344f7e70ae31d9cc1a7f22b1908bb85e3a2618)
+++ tests/concurrency/channels/big_elems.cfa	(revision 50be8af55788ecaebbb85845d1e11234cd6a5cb6)
@@ -2,5 +2,5 @@
 #include "parallel_harness.hfa"
 
-size_t Processors = 10, Channels = 10, Producers = 40, Consumers = 40, ChannelSize = 128;
+ssize_t Processors = 10, Channels = 10, Producers = 40, Consumers = 40, ChannelSize = 128;
 
 int main() {
Index: tests/concurrency/channels/churn.cfa
===================================================================
--- tests/concurrency/channels/churn.cfa	(revision cb344f7e70ae31d9cc1a7f22b1908bb85e3a2618)
+++ tests/concurrency/channels/churn.cfa	(revision 50be8af55788ecaebbb85845d1e11234cd6a5cb6)
@@ -7,5 +7,5 @@
 #include <time.hfa>
 
-size_t Processors = 1, Channels = 4, Producers = 2, Consumers = 2, ChannelSize = 128;
+ssize_t Processors = 1, Channels = 4, Producers = 2, Consumers = 2, ChannelSize = 128;
 
 owner_lock o;
@@ -90,27 +90,25 @@
       case 4:
 		if ( strcmp( argv[3], "d" ) != 0 ) {			// default ?
-			if ( atoi( argv[3] ) < 1 ) goto Usage;
-			ChannelSize = atoi( argv[3] );
+			ChannelSize = ato( argv[3] );
+			if ( ChannelSize < 1 ) fallthru default;
 		} // if
       case 3:
 		if ( strcmp( argv[2], "d" ) != 0 ) {			// default ?
-			if ( atoi( argv[2] ) < 1 ) goto Usage;
-			Channels = atoi( argv[2] );
+			Channels = ato( argv[2] );
+			if ( Channels < 1 ) fallthru default;
 		} // if
       case 2:
 		if ( strcmp( argv[1], "d" ) != 0 ) {			// default ?
-			if ( atoi( argv[1] ) < 1 ) goto Usage;
-			Processors = atoi( argv[1] );
+			Processors = ato( argv[1] );
+			if ( Processors < 1 ) fallthru default;
 		} // if
 	  case 1:											// use defaults
 		break;
 	  default:
-	  Usage:
-		sout | "Usage: " | argv[0]
+		exit | "Usage: " | argv[0]
              | " [ processors > 0 | d ]"
              | " [ producers > 0 | d ]"
              | " [ consumers > 0 | d ]"
              | " [ channels > 0 | d ]";
-		exit( EXIT_FAILURE );
     }
     processor p[Processors - 1];
Index: tests/concurrency/channels/contend.cfa
===================================================================
--- tests/concurrency/channels/contend.cfa	(revision cb344f7e70ae31d9cc1a7f22b1908bb85e3a2618)
+++ tests/concurrency/channels/contend.cfa	(revision 50be8af55788ecaebbb85845d1e11234cd6a5cb6)
@@ -127,21 +127,21 @@
 	  case 3:
 		if ( strcmp( argv[2], "d" ) != 0 ) {			// default ?
-			ChannelSize = atoi( argv[2] );
+			ChannelSize = ato( argv[2] );
+			if ( ChannelSize < 1 ) fallthru default;
 		} // if
 	  case 2:
 		if ( strcmp( argv[1], "d" ) != 0 ) {			// default ?
-			Processors = atoi( argv[1] );
-			if ( Processors < 1 ) goto Usage;
+			Processors = ato( argv[1] );
+			if ( Processors < 1 ) fallthru default;
 		} // if
 	  case 1:											// use defaults
 		break;
 	  default:
-	  Usage:
-		sout | "Usage: " | argv[0]
+		exit | "Usage: " | argv[0]
              | " [ processors (> 0) | 'd' (default " | Processors
 			 | ") ] [ channel size (>= 0) | 'd' (default " | ChannelSize
 			 | ") ]" ;
-		exit( EXIT_FAILURE );
 	} // switch
+
     test(Processors, Channels, Producers, Consumers, ChannelSize);
 }
Index: tests/concurrency/channels/daisy_chain.cfa
===================================================================
--- tests/concurrency/channels/daisy_chain.cfa	(revision cb344f7e70ae31d9cc1a7f22b1908bb85e3a2618)
+++ tests/concurrency/channels/daisy_chain.cfa	(revision 50be8af55788ecaebbb85845d1e11234cd6a5cb6)
@@ -8,5 +8,5 @@
 
 size_t total_operations = 0;
-size_t Processors = 1, Tasks = 4;
+ssize_t Processors = 1, Tasks = 4;						// must be signed
 
 owner_lock o;
@@ -37,21 +37,19 @@
 	  case 3:
 		if ( strcmp( argv[2], "d" ) != 0 ) {			// default ?
-			Tasks = atoi( argv[2] );
-            if ( Tasks < 1 ) goto Usage;
+			Tasks = ato( argv[2] );
+            if ( Tasks < 1 ) fallthru default;
 		} // if
 	  case 2:
 		if ( strcmp( argv[1], "d" ) != 0 ) {			// default ?
-			Processors = atoi( argv[1] );
-			if ( Processors < 1 ) goto Usage;
+			Processors = ato( argv[1] );
+			if ( Processors < 1 ) fallthru default;
 		} // if
 	  case 1:											// use defaults
 		break;
 	  default:
-	  Usage:
-		sout | "Usage: " | argv[0]
+		exit | "Usage: " | argv[0]
              | " [ processors (> 0) | 'd' (default " | Processors
 			 | ") ] [ channel size (>= 0) | 'd' (default " | Tasks
 			 | ") ]" ;
-		exit( EXIT_FAILURE );
 	} // switch
     processor proc[Processors - 1];
@@ -71,5 +69,3 @@
     // sout | total_operations;
     sout | "done";
-
-    return 0;
 }
Index: tests/concurrency/channels/hot_potato.cfa
===================================================================
--- tests/concurrency/channels/hot_potato.cfa	(revision cb344f7e70ae31d9cc1a7f22b1908bb85e3a2618)
+++ tests/concurrency/channels/hot_potato.cfa	(revision 50be8af55788ecaebbb85845d1e11234cd6a5cb6)
@@ -8,5 +8,5 @@
 
 size_t total_operations = 0;
-size_t Processors = 1, Tasks = 4;
+ssize_t Processors = 1, Tasks = 4;						// must be signed
 
 owner_lock o;
@@ -38,27 +38,25 @@
 }
 
-
 int main( int argc, char * argv[] ) {
     switch ( argc ) {
 	  case 3:
 		if ( strcmp( argv[2], "d" ) != 0 ) {			// default ?
-			Tasks = atoi( argv[2] );
-            if ( Tasks < 1 ) goto Usage;
+			Tasks = ato( argv[2] );
+            if ( Tasks < 1 ) fallthru default;
 		} // if
 	  case 2:
 		if ( strcmp( argv[1], "d" ) != 0 ) {			// default ?
-			Processors = atoi( argv[1] );
-			if ( Processors < 1 ) goto Usage;
+			Processors = ato( argv[1] );
+			if ( Processors < 1 ) fallthru default;
 		} // if
 	  case 1:											// use defaults
 		break;
 	  default:
-	  Usage:
-		sout | "Usage: " | argv[0]
+		exit | "Usage: " | argv[0]
              | " [ processors (> 0) | 'd' (default " | Processors
 			 | ") ] [ channel size (>= 0) | 'd' (default " | Tasks
 			 | ") ]" ;
-		exit( EXIT_FAILURE );
 	} // switch
+
     processor proc[Processors - 1];
 
Index: tests/concurrency/channels/pub_sub.cfa
===================================================================
--- tests/concurrency/channels/pub_sub.cfa	(revision cb344f7e70ae31d9cc1a7f22b1908bb85e3a2618)
+++ tests/concurrency/channels/pub_sub.cfa	(revision 50be8af55788ecaebbb85845d1e11234cd6a5cb6)
@@ -87,21 +87,19 @@
 	  case 3:
 		if ( strcmp( argv[2], "d" ) != 0 ) {			// default ?
-			Tasks = atoi( argv[2] );
-            if ( Tasks < 1 ) goto Usage;
+			Tasks = ato( argv[2] );
+            if ( Tasks < 1 ) fallthru default;
 		} // if
 	  case 2:
 		if ( strcmp( argv[1], "d" ) != 0 ) {			// default ?
-			Processors = atoi( argv[1] );
-			if ( Processors < 1 ) goto Usage;
+			Processors = ato( argv[1] );
+			if ( Processors < 1 ) fallthru default;
 		} // if
 	  case 1:											// use defaults
 		break;
 	  default:
-	  Usage:
-		sout | "Usage: " | argv[0]
+		exit | "Usage: " | argv[0]
              | " [ processors (> 0) | 'd' (default " | Processors
 			 | ") ] [ Tasks (> 0) | 'd' (default " | Tasks
 			 | ") ]" ;
-		exit( EXIT_FAILURE );
 	} // switch
     BarrierSize = Tasks;
