Index: doc/papers/concurrency/examples/Format1.c
===================================================================
--- doc/papers/concurrency/examples/Format1.c	(revision 466fa013f2bfa1aed287add52d969087ca7f4721)
+++ doc/papers/concurrency/examples/Format1.c	(revision 5c9b20cdbd8f11c2e3b1817c4e65a16c5f1e9a65)
@@ -2,38 +2,38 @@
 
 typedef struct {
-	void * next;
+	int restart, g, b;
 	char ch;
-	int g, b;
 } Fmt;
 
 void format( Fmt * f ) {
-	if ( __builtin_expect(f->next != 0, 1) ) goto *f->next;
-	f->next = &&s1;
+	static void * states[] = {&&s0, &&s1};
+	goto *states[f->restart];
+  s0: f->restart = 1;
 	for ( ;; ) {
 		for ( f->g = 0; f->g < 5; f->g += 1 ) {			// groups
 			for ( f->b = 0; f->b < 4; f->b += 1 ) {		// blocks
 				return;
-			  s1: ;
-				if ( f->ch == '\0' ) goto fini;			// EOF ?
+			  s1: if ( f->ch == '\0' ) goto fini;		// EOF ?
 				while ( f->ch == '\n' ) return;			// ignore
-				printf( "%c", f->ch );					// print character
+//				printf( "%c", f->ch );					// print character
 			}
-			printf( " " );								// block separator
+//			printf( " " );								// block separator
 		}
-		printf( "\n" );									// group separator
+//		printf( "\n" );									// group separator
 	}
-  fini:
-	if ( f->g != 0 || f->b != 0 ) printf( "\n" );
+  fini:;
+//	if ( f->g != 0 || f->b != 0 ) printf( "\n" );
 }
 
 int main() {
-	Fmt fmt = { NULL };
+	Fmt fmt = { 0 };
 	format( &fmt );										// prime
-	for ( ;; ) {
-		scanf( "%c", &fmt.ch );							// direct read into communication variable
-	  if ( feof( stdin ) ) break;
+	fmt.ch = 'a';
+	for ( long int i = 0; i < 1000000000; i += 1 ) {
+//		scanf( "%c", &fmt.ch );							// direct read into communication variable
+//	  if ( feof( stdin ) ) break;
 		format( &fmt );
 	}
-	fmt.ch = '\0';
+	fmt.ch = '\0';										// sentential (EOF)
 	format( &fmt );
 }
