Index: tests/concurrent/clib.c
===================================================================
--- tests/concurrent/clib.c	(revision c8e37e0743847d35712c58ff12491fdd4544849a)
+++ tests/concurrent/clib.c	(revision df65c0c2be6ff4d5d64f16da465106c77c1a5f82)
@@ -1,6 +1,9 @@
+#include <stdio.h>
+#include <stdlib.h>
 #include <clib/cfathread.h>
 
-#include <stdio.h>
-#include <stdlib.h>
+extern "C" {
+void _exit(int status);
+}
 
 thread_local struct drand48_data buffer = { 0 };
@@ -15,5 +18,5 @@
 cfathread_t volatile blocked[blocked_size];
 
-void Worker( cfathread_t this ) {
+void * Worker( void * ) {
 	for(int i = 0; i < 1000; i++) {
 		int idx = myrand() % blocked_size;
@@ -22,5 +25,5 @@
 			cfathread_unpark( thrd );
 		} else {
-			cfathread_t thrd = __atomic_exchange_n(&blocked[idx], this, __ATOMIC_SEQ_CST);
+			cfathread_t thrd = __atomic_exchange_n(&blocked[idx], cfathread_self(), __ATOMIC_SEQ_CST);
 			cfathread_unpark( thrd );
 			cfathread_park();
@@ -28,8 +31,9 @@
 	}
 	printf("Done\n");
+	return NULL;
 }
 
 volatile bool stop;
-void Unparker( cfathread_t this ) {
+void * Unparker( void * ) {
 	while(!stop) {
 		int idx = myrand() % blocked_size;
@@ -42,4 +46,5 @@
 	}
 	printf("Done Unparker\n");
+	return NULL;
 }
 
@@ -51,17 +56,23 @@
 	}
 
-	cfathread_setproccnt( 4 );
-	cfathread_t u = cfathread_create( Unparker );
+	cfathread_cluster_t cl = cfathread_cluster_self();
+
+	cfathread_cluster_add_worker( cl, NULL, NULL, NULL );
+	cfathread_cluster_add_worker( cl, NULL, NULL, NULL );
+	cfathread_cluster_add_worker( cl, NULL, NULL, NULL );
+	cfathread_t u;
+	cfathread_create( &u, NULL, Unparker, NULL );
 	{
 		cfathread_t t[20];
 		for(int i = 0; i < 20; i++) {
-			t[i] = cfathread_create( Worker );
+			cfathread_create( &t[i], NULL, Worker, NULL );
 		}
 		for(int i = 0; i < 20; i++) {
-			cfathread_join( t[i] );
+			cfathread_join( t[i], NULL );
 		}
 	}
 	stop = true;
-	cfathread_join(u);
-	cfathread_setproccnt( 1 );
+	cfathread_join(u, NULL);
+	fflush(stdout);
+	_exit(0);
 }
