Index: src/tests/preempt_longrun/create.c
===================================================================
--- src/tests/preempt_longrun/create.c	(revision 5bd0aad2eb20d7e1f1b3a2f5e19678c448dd7e13)
+++ src/tests/preempt_longrun/create.c	(revision cd99ef1f70d999e3d215bb166749d82f67bd56e6)
@@ -1,4 +1,6 @@
 #include <kernel>
 #include <thread>
+
+static const unsigned long N = 2_000ul;
 
 #ifndef PREEMPTION_RATE
@@ -16,5 +18,5 @@
 int main(int argc, char* argv[]) {
 	processor p;
-	for(int i = 0; i < 10_000ul; i++) {
+	for(int i = 0; i < N; i++) {
 		worker_t w[7];
 	}
Index: src/tests/preempt_longrun/enter.c
===================================================================
--- src/tests/preempt_longrun/enter.c	(revision 5bd0aad2eb20d7e1f1b3a2f5e19678c448dd7e13)
+++ src/tests/preempt_longrun/enter.c	(revision cd99ef1f70d999e3d215bb166749d82f67bd56e6)
@@ -3,5 +3,4 @@
 #include <thread>
 
-#undef N
 static const unsigned long N  = 70_000ul;
 
Index: src/tests/preempt_longrun/enter3.c
===================================================================
--- src/tests/preempt_longrun/enter3.c	(revision 5bd0aad2eb20d7e1f1b3a2f5e19678c448dd7e13)
+++ src/tests/preempt_longrun/enter3.c	(revision cd99ef1f70d999e3d215bb166749d82f67bd56e6)
@@ -3,5 +3,4 @@
 #include <thread>
 
-#undef N
 static const unsigned long N  = 50_000ul;
 
Index: src/tests/preempt_longrun/processor.c
===================================================================
--- src/tests/preempt_longrun/processor.c	(revision 5bd0aad2eb20d7e1f1b3a2f5e19678c448dd7e13)
+++ src/tests/preempt_longrun/processor.c	(revision cd99ef1f70d999e3d215bb166749d82f67bd56e6)
@@ -1,4 +1,6 @@
 #include <kernel>
 #include <thread>
+
+static const unsigned long N = 5_000ul;
 
 #ifndef PREEMPTION_RATE
@@ -15,5 +17,5 @@
 
 int main(int argc, char* argv[]) {
-	for(int i = 0; i < 10_000ul; i++) {
+	for(int i = 0; i < N; i++) {
 		processor p;
 	}
Index: src/tests/preempt_longrun/yield.c
===================================================================
--- src/tests/preempt_longrun/yield.c	(revision 5bd0aad2eb20d7e1f1b3a2f5e19678c448dd7e13)
+++ src/tests/preempt_longrun/yield.c	(revision cd99ef1f70d999e3d215bb166749d82f67bd56e6)
@@ -1,4 +1,6 @@
 #include <kernel>
 #include <thread>
+
+static const unsigned long N = 325_000ul;
 
 #ifndef PREEMPTION_RATE
@@ -13,5 +15,5 @@
 
 void main(worker_t * this) {
-	for(int i = 0; i < 325_000ul; i++) {
+	for(int i = 0; i < N; i++) {
 		yield();
 	}
Index: src/tests/sched-int-barge.c
===================================================================
--- src/tests/sched-int-barge.c	(revision 5bd0aad2eb20d7e1f1b3a2f5e19678c448dd7e13)
+++ src/tests/sched-int-barge.c	(revision cd99ef1f70d999e3d215bb166749d82f67bd56e6)
@@ -5,8 +5,13 @@
 #include <thread>
 
-#ifndef N
-#define N 100_000
+static const unsigned long N = 50_000ul;
+
+#ifndef PREEMPTION_RATE
+#define PREEMPTION_RATE 10_000ul
 #endif
 
+unsigned int default_preemption() {
+	return 0;
+}
 enum state_t { WAIT, SIGNAL, BARGE };
 
@@ -14,5 +19,5 @@
 
 monitor global_data_t {
-	bool done;
+	volatile bool done;
 	int counter;
 	state_t state;
@@ -55,5 +60,5 @@
 		c->do_wait2 = ((unsigned)rand48()) % (c->do_signal);
 
-		// if(c->do_wait1 == c->do_wait2) sout | "Same" | endl;
+		if(c->do_wait1 == c->do_wait2) sout | "Same" | endl;
 	}
 
@@ -93,9 +98,12 @@
 }
 
+static thread_desc * volatile the_threads;
+
 int main(int argc, char* argv[]) {
-	rand48seed(0);
-	processor p;
-	{
-		Threads t[17];
-	}
+        rand48seed(0);
+        processor p;
+        {
+                Threads t[17];
+                the_threads = (thread_desc*)t;
+        }
 }
Index: src/tests/sched-int-block.c
===================================================================
--- src/tests/sched-int-block.c	(revision 5bd0aad2eb20d7e1f1b3a2f5e19678c448dd7e13)
+++ src/tests/sched-int-block.c	(revision cd99ef1f70d999e3d215bb166749d82f67bd56e6)
@@ -5,7 +5,15 @@
 #include <thread>
 
-#ifndef N
-#define N 10_000
+#include <time.h>
+
+static const unsigned long N = 5_000ul;
+
+#ifndef PREEMPTION_RATE
+#define PREEMPTION_RATE 10_000ul
 #endif
+
+unsigned int default_preemption() {
+	return PREEMPTION_RATE;
+}
 
 enum state_t { WAITED, SIGNAL, BARGE };
@@ -101,5 +109,5 @@
 
 int main(int argc, char* argv[]) {
-	rand48seed(0);
+	rand48seed( time( NULL ) );
 	done = false;
 	processor p;
Index: src/tests/sched-int-disjoint.c
===================================================================
--- src/tests/sched-int-disjoint.c	(revision 5bd0aad2eb20d7e1f1b3a2f5e19678c448dd7e13)
+++ src/tests/sched-int-disjoint.c	(revision cd99ef1f70d999e3d215bb166749d82f67bd56e6)
@@ -4,7 +4,13 @@
 #include <thread>
 
-#ifndef N
-#define N 10_000
+static const unsigned long N = 10_000ul;
+
+#ifndef PREEMPTION_RATE
+#define PREEMPTION_RATE 10_000ul
 #endif
+
+unsigned int default_preemption() {
+	return PREEMPTION_RATE;
+}
 
 enum state_t { WAIT, SIGNAL, BARGE };
Index: src/tests/sched-int-wait.c
===================================================================
--- src/tests/sched-int-wait.c	(revision 5bd0aad2eb20d7e1f1b3a2f5e19678c448dd7e13)
+++ src/tests/sched-int-wait.c	(revision cd99ef1f70d999e3d215bb166749d82f67bd56e6)
@@ -5,7 +5,13 @@
 #include <thread>
 
-#ifndef N
-#define N 10_000
+static const unsigned long N = 10_000ul;
+
+#ifndef PREEMPTION_RATE
+#define PREEMPTION_RATE 10_000ul
 #endif
+
+unsigned int default_preemption() {
+	return PREEMPTION_RATE;
+}
 
 monitor global_t {};
@@ -114,5 +120,5 @@
 int main(int argc, char* argv[]) {
 	waiter_left = 4;
-	processor p;
+	processor p[2];
 	sout | "Starting" | endl;
 	{
