Index: tests/concurrent/preempt.cfa
===================================================================
--- tests/concurrent/preempt.cfa	(revision 0fc447c38ee7b02d6cdb7bd08aef617ade5852c7)
+++ tests/concurrent/preempt.cfa	(revision c0f881beb18ec352cb27574b6c3a5e8e27d19a04)
@@ -1,2 +1,3 @@
+#include <fstream.hfa>
 #include <kernel.hfa>
 #include <thread.hfa>
@@ -32,5 +33,7 @@
 
 void main(worker_t & this) {
+	unsigned spin = 0;
 	while(TEST(counter < N)) {
+		if(spin > 100_000_000) abort | "Worker" | this.value | "has been spinning too long! (" | spin | ")";
 		__cfaabi_check_preemption();
 		if( (counter % 7) == this.value ) {
@@ -40,7 +43,9 @@
 			if( (next % 100) == 0 ) printf("%d\n", (int)next);
 			__cfaabi_check_preemption();
+			spin = 0;
 		}
 		__cfaabi_check_preemption();
 		KICK_WATCHDOG;
+		spin++;
 	}
 }
