Index: tests/concurrent/preempt.cfa
===================================================================
--- tests/concurrent/preempt.cfa	(revision 8e5e945add9eb57f6a0fcc7bcdcf139fc2cabea9)
+++ tests/concurrent/preempt.cfa	(revision c5af4f9989f40ba37062ed52f1c2f7fc73476a2e)
@@ -19,11 +19,13 @@
 #else
 static const unsigned long N = 500ul;
-static volatile Time prev;
-static Duration preempt_durations[6] = { 0 };
 #endif
 
 extern void __cfaabi_check_preemption();
 
-static volatile int counter = 0;
+static struct {
+	volatile int counter;
+	volatile Time prev;
+	Duration durations[6];
+} globals;
 
 thread worker_t {
@@ -38,15 +40,15 @@
 
 void main(worker_t & this) {
-	while(TEST(counter < N)) {
+	while(TEST(globals.counter < N)) {
 		if(this.spin > 50_000_000_000) abort | "Worker" | this.value | "has been spinning too long! (" | this.spin | ")";
 		__cfaabi_check_preemption();
-		if( (counter % 7) == this.value ) {
+		if( (globals.counter % 7) == this.value ) {
 			__cfaabi_check_preemption();
 			#if !defined(TEST_LONG)
 				Time now = timeHiRes();
-				Duration diff = now - prev;
-				prev = now;
+				Duration diff = now - globals.prev;
+				globals.prev = now;
 			#endif
-			int next = __atomic_add_fetch( &counter, 1, __ATOMIC_SEQ_CST );
+			int next = __atomic_add_fetch( &globals.counter, 1, __ATOMIC_SEQ_CST );
 			__cfaabi_check_preemption();
 			if( (next % 100) == 0 ) {
@@ -54,5 +56,5 @@
 					unsigned idx = next / 100;
 					if (idx >= 6) abort | "Idx from next is invalid: " | idx | "vs" | next;
-					preempt_durations[idx] = diff;
+					globals.durations[idx] = diff;
 					if(diff > 12`s) serr | "Duration suspiciously large:" | diff;
 				#endif
@@ -71,6 +73,13 @@
 int main(int argc, char* argv[]) {
 	processor p;
+	globals.counter = 0;
+	globals.durations[0] = 0;
+	globals.durations[1] = 0;
+	globals.durations[2] = 0;
+	globals.durations[3] = 0;
+	globals.durations[4] = 0;
+	globals.durations[5] = 0;
 	{
-		prev = timeHiRes();
+		globals.prev = timeHiRes();
 		worker_t w0 = 0;
 		worker_t w1 = 1;
