Index: tests/concurrent/park/.expect/force_preempt.txt
===================================================================
--- tests/concurrent/park/.expect/force_preempt.txt	(revision 959f6ad7be069ef347da6b078ecfa517f3653102)
+++ tests/concurrent/park/.expect/force_preempt.txt	(revision 04e6f93974c083b5fc070b751fb62d1ade6be1d9)
@@ -1,75 +1,0 @@
-0 Calling unpark 0
-1 Calling unpark 0
-2 Calling unpark 0
-3 Calling unpark 0
-4 Calling unpark 0
-0 Parking 0
-0 Unparked 0
-0 Calling unpark 1
-1 Parking 0
-1 Unparked 0
-1 Calling unpark 1
-2 Parking 0
-2 Unparked 0
-2 Calling unpark 1
-3 Parking 0
-3 Unparked 0
-3 Calling unpark 1
-4 Parking 0
-4 Unparked 0
-4 Calling unpark 1
-0 Parking 1
-0 Unparked 1
-0 Calling unpark 2
-1 Parking 1
-1 Unparked 1
-1 Calling unpark 2
-2 Parking 1
-2 Unparked 1
-2 Calling unpark 2
-3 Parking 1
-3 Unparked 1
-3 Calling unpark 2
-4 Parking 1
-4 Unparked 1
-4 Calling unpark 2
-0 Parking 2
-0 Unparked 2
-0 Calling unpark 3
-1 Parking 2
-1 Unparked 2
-1 Calling unpark 3
-2 Parking 2
-2 Unparked 2
-2 Calling unpark 3
-3 Parking 2
-3 Unparked 2
-3 Calling unpark 3
-4 Parking 2
-4 Unparked 2
-4 Calling unpark 3
-0 Parking 3
-0 Unparked 3
-0 Calling unpark 4
-1 Parking 3
-1 Unparked 3
-1 Calling unpark 4
-2 Parking 3
-2 Unparked 3
-2 Calling unpark 4
-3 Parking 3
-3 Unparked 3
-3 Calling unpark 4
-4 Parking 3
-4 Unparked 3
-4 Calling unpark 4
-0 Parking 4
-0 Unparked 4
-1 Parking 4
-1 Unparked 4
-2 Parking 4
-2 Unparked 4
-3 Parking 4
-3 Unparked 4
-4 Parking 4
-4 Unparked 4
Index: tests/concurrent/park/force_preempt.cfa
===================================================================
--- tests/concurrent/park/force_preempt.cfa	(revision 959f6ad7be069ef347da6b078ecfa517f3653102)
+++ tests/concurrent/park/force_preempt.cfa	(revision 04e6f93974c083b5fc070b751fb62d1ade6be1d9)
@@ -16,7 +16,5 @@
 }
 
-thread Waiter;
 thread Waiter {};
-
 
 volatile int count = 0;
@@ -25,9 +23,17 @@
 	// Get a unique id
 	int id = __atomic_fetch_add(&count, 1, __ATOMIC_SEQ_CST);
+	int id_hash = id | (id << 8) | (id << 16) | (id << 24);
+	int mask = 0xCAFEBABA;
 
 	for(int i = 0; i < 5; i++) {
+		assert(mask == 0xCAFEBABA);
+
 		// Unpark this thread, don't force a yield
-		sout | id | "Calling unpark" | i;
 		unpark(this);
+		assert(mask == 0xCAFEBABA);
+
+		// Hash the mask to make sure no one else messes with them
+		mask ^= id_hash;
+		assert(mask == (id_hash ^ 0xCAFEBABA));
 
 		// Force a preemption before the call to park
@@ -36,7 +42,11 @@
 
 		// Park this thread,
-		sout | id | "Parking" | i;
+		assert(mask == (id_hash ^ 0xCAFEBABA));
 		park();
-		sout | id | "Unparked" | i;
+		assert(mask == (id_hash ^ 0xCAFEBABA));
+
+		// Reset the hash and recheck it
+		mask ^= id_hash;
+		assert(mask == 0xCAFEBABA);
 	}
 }
