Index: tests/concurrency/examples/quickSort.cfa
===================================================================
--- tests/concurrency/examples/quickSort.cfa	(revision 40002c571ede7ddc84d480b11695fca66c1e8e35)
+++ tests/concurrency/examples/quickSort.cfa	(revision d1fbc56eb90675715ccf39ca76d45ed759d3cc40)
@@ -11,6 +11,6 @@
 // Created On       : Wed Dec  6 12:15:52 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Jan  1 12:07:59 2024
-// Update Count     : 188
+// Last Modified On : Sat Aug 17 13:59:15 2024
+// Update Count     : 199
 //
 
@@ -145,29 +145,33 @@
 
 	if ( size == -1 ) {									// generate output ?
-		for () {
-			unsortedfile | size;						// read number of elements in the list
-		  if ( eof( unsortedfile ) ) break;
-
-			int * values = aalloc( size );				// values to be sorted, too large to put on stack
-			for ( counter; size ) {						// read unsorted numbers
-				unsortedfile | values[counter];
-				if ( counter != 0 && counter % ValuesPerLine == 0 ) sortedfile | nl | "  ";
-				sortedfile | values[counter];
-				if ( counter < size - 1 && (counter + 1) % ValuesPerLine != 0 ) sortedfile | ' ';
+		int * values = 0p;
+		try {
+			for () {
+				unsortedfile | size;					// read number of elements in the list
+				values = aalloc( size );				// values to be sorted, too large to put on stack
+				for ( counter; size ) {					// read unsorted numbers
+					unsortedfile | values[counter];
+					if ( counter != 0 && counter % ValuesPerLine == 0 ) sortedfile | nl | "  ";
+					sortedfile | values[counter];
+					if ( counter < size - 1 && (counter + 1) % ValuesPerLine != 0 ) sortedfile | ' ';
+				} // for
+				sortedfile | nl;
+
+				if ( size > 0 ) {						// values to sort ?
+					Quicksort QS = { values, size - 1, 0 }; // sort values
+				} // wait until sort tasks terminate
+				for ( counter; size ) {					// print sorted list
+					if ( counter != 0 && counter % ValuesPerLine == 0 ) sortedfile | nl | "  ";
+					sortedfile | values[counter];
+					if ( counter < size - 1 && (counter + 1) % ValuesPerLine != 0 ) sortedfile | ' ';
+				} // for
+				sortedfile | nl | nl;
+
+				delete( values );
+				values = 0p;
 			} // for
-			sortedfile | nl;
-
-			if ( size > 0 ) {							// values to sort ?
-				Quicksort QS = { values, size - 1, 0 }; // sort values
-			} // wait until sort tasks terminate
-			for ( counter; size ) {						// print sorted list
-				if ( counter != 0 && counter % ValuesPerLine == 0 ) sortedfile | nl | "  ";
-				sortedfile | values[counter];
-				if ( counter < size - 1 && (counter + 1) % ValuesPerLine != 0 ) sortedfile | ' ';
-			} // for
-			sortedfile | nl | nl;
-
+		} catch( end_of_file * ) {
 			delete( values );
-		} // for
+		} // try
 	} else {											// timing
 		PRNG prng;										
