Index: src/tests/preempt.c
===================================================================
--- src/tests/preempt.c	(revision eaace252967f5f7d75220819f0a1b84b5517f298)
+++ src/tests/preempt.c	(revision 0322865c9a61aaca02c8751474d1058cb1fe7fd7)
@@ -12,13 +12,13 @@
 static volatile int counter = 0;
 
-thread Worker {
+thread worker_t {
 	int value;
 };
 
-void ?{}( Worker * this, int value ) {
+void ?{}( worker_t * this, int value ) {
 	this->value = value;
 }
 
-void main(Worker * this) {
+void main(worker_t * this) {
 	while(counter < 1000) {
 		if( (counter % 7) == this->value ) {
@@ -32,11 +32,11 @@
 	processor p;
 	{
-		Worker w0 = 0;
-		Worker w1 = 1;
-		Worker w2 = 2;
-		Worker w3 = 3;
-		Worker w4 = 4;
-		Worker w5 = 5;
-		Worker w6 = 6;
+		worker_t w0 = 0;
+		worker_t w1 = 1;
+		worker_t w2 = 2;
+		worker_t w3 = 3;
+		worker_t w4 = 4;
+		worker_t w5 = 5;
+		worker_t w6 = 6;
 	}
 }
Index: src/tests/preempt_longrun/create.c
===================================================================
--- src/tests/preempt_longrun/create.c	(revision eaace252967f5f7d75220819f0a1b84b5517f298)
+++ src/tests/preempt_longrun/create.c	(revision 0322865c9a61aaca02c8751474d1058cb1fe7fd7)
@@ -10,11 +10,11 @@
 }
 
-thread Worker {};
+thread worker_t {};
 
-void main(Worker * this) {}
+void main(worker_t * this) {}
 
 int main(int argc, char* argv[]) {
-	for(int i = 0; i < 250_000ul; i++) {
-		Worker w;
+	for(int i = 0; i < 10_000ul; i++) {
+		worker_t w[7];
 	}
 }
Index: src/tests/preempt_longrun/enter.c
===================================================================
--- src/tests/preempt_longrun/enter.c	(revision eaace252967f5f7d75220819f0a1b84b5517f298)
+++ src/tests/preempt_longrun/enter.c	(revision 0322865c9a61aaca02c8751474d1058cb1fe7fd7)
@@ -28,8 +28,13 @@
 }
 
+extern "C" {
+static worker_t * workers;
+}
+
 int main(int argc, char * argv[] ) {
 	processor p;
 	{
 		worker_t w[7];
+		workers = w;
 	}
 }
Index: src/tests/preempt_longrun/enter3.c
===================================================================
--- src/tests/preempt_longrun/enter3.c	(revision eaace252967f5f7d75220819f0a1b84b5517f298)
+++ src/tests/preempt_longrun/enter3.c	(revision 0322865c9a61aaca02c8751474d1058cb1fe7fd7)
@@ -28,8 +28,13 @@
 }
 
+extern "C" {
+static worker_t * workers;
+}
+
 int main(int argc, char * argv[] ) {
 	processor p;
 	{
 		worker_t w[7];
+		workers = w;
 	}
 }
Index: src/tests/preempt_longrun/processor.c
===================================================================
--- src/tests/preempt_longrun/processor.c	(revision eaace252967f5f7d75220819f0a1b84b5517f298)
+++ src/tests/preempt_longrun/processor.c	(revision 0322865c9a61aaca02c8751474d1058cb1fe7fd7)
@@ -10,7 +10,7 @@
 }
 
-thread Worker {};
+thread worker_t {};
 
-void main(Worker * this) {}
+void main(worker_t * this) {}
 
 int main(int argc, char* argv[]) {
Index: src/tests/preempt_longrun/stack.c
===================================================================
--- src/tests/preempt_longrun/stack.c	(revision eaace252967f5f7d75220819f0a1b84b5517f298)
+++ src/tests/preempt_longrun/stack.c	(revision 0322865c9a61aaca02c8751474d1058cb1fe7fd7)
@@ -12,15 +12,15 @@
 }
 
-thread Worker {};
+thread worker_t {};
 
-void main(Worker * this) {
+void main(worker_t * this) {
 	volatile long p = 5_021_609ul;
 	volatile long a = 326_417ul;
 	volatile long n = 1l;
-	for (volatile long i = 0; i < p; i++) { 
-		n *= a; 
-		n %= p; 
+	for (volatile long i = 0; i < p; i++) {
+		n *= a;
+		n %= p;
 	}
-		
+
 	if( n != a ) {
 		abort();
@@ -28,8 +28,13 @@
 }
 
+extern "C" {
+static worker_t * workers;
+}
+
 int main(int argc, char* argv[]) {
 	processor p;
 	{
-		Worker w[7];
+		worker_t w[7];
+		workers = w;
 	}
 }
Index: src/tests/preempt_longrun/yield.c
===================================================================
--- src/tests/preempt_longrun/yield.c	(revision eaace252967f5f7d75220819f0a1b84b5517f298)
+++ src/tests/preempt_longrun/yield.c	(revision 0322865c9a61aaca02c8751474d1058cb1fe7fd7)
@@ -10,7 +10,7 @@
 }
 
-thread Worker {};
+thread worker_t {};
 
-void main(Worker * this) {
+void main(worker_t * this) {
 	for(int i = 0; i < 325_000ul; i++) {
 		yield();
@@ -18,8 +18,13 @@
 }
 
+extern "C" {
+static worker_t * workers;
+}
+
 int main(int argc, char* argv[]) {
 	processor p;
 	{
-		Worker w[7];
+		worker_t w[7];
+		workers = w;
 	}
 }
Index: src/tests/sched-int-disjoint.c
===================================================================
--- src/tests/sched-int-disjoint.c	(revision eaace252967f5f7d75220819f0a1b84b5517f298)
+++ src/tests/sched-int-disjoint.c	(revision 0322865c9a61aaca02c8751474d1058cb1fe7fd7)
@@ -5,5 +5,5 @@
 
 #ifndef N
-#define N 100_000
+#define N 10_000
 #endif
 
@@ -42,7 +42,7 @@
 
 void main( Barger * this ) {
-	while( !all_done ) { 
+	while( !all_done ) {
 		barge( &data );
-		yield(); 
+		yield();
 	}
 }
@@ -53,5 +53,5 @@
 	wait( &cond );
 	if( d->state != SIGNAL ) {
-		sout | "ERROR barging!" | endl; 
+		sout | "ERROR barging!" | endl;
 	}
 
@@ -85,5 +85,5 @@
 	bool running = data.counter < N && data.counter > 0;
 	if( data.state != SIGNAL && running ) {
-		sout | "ERROR Eager signal" | data.state | endl; 
+		sout | "ERROR Eager signal" | data.state | endl;
 	}
 }
@@ -92,7 +92,7 @@
 
 void main( Signaller * this ) {
-	while( !all_done ) { 
+	while( !all_done ) {
 		logic( &mut );
-		yield(); 
+		yield();
 	}
 }
@@ -111,4 +111,4 @@
 		sout | "All waiter done" | endl;
 		all_done = true;
-	}	
+	}
 }
