Index: libcfa/src/executor.cfa
===================================================================
--- libcfa/src/executor.cfa	(revision 089ee6bd97c8a8ad1dcf8e5982f246ed6fe212b2)
+++ libcfa/src/executor.cfa	(revision c19bc90112fb552e6efe8c9bc93732c41f0734b7)
@@ -4,7 +4,6 @@
 // buffer.
 
+#include <thread.hfa>
 #include <containers/list.hfa>
-#include <thread.hfa>
-//#include <malloc.h>										// trace
 
 forall( dtype T | $dlistable(T, T) ) {
@@ -22,10 +21,8 @@
 	T * remove( Buffer(T) & mutex buf ) with(buf) {
 		dlist( T, T ) * qptr = &queue;					// workaround https://cforall.uwaterloo.ca/trac/ticket/166
-		if ( (*qptr)`is_empty ) wait( delay );			// no request to process ? => wait
+		// if ( (*qptr)`is_empty ) wait( delay );			// no request to process ? => wait
+	  if ( (*qptr)`is_empty ) return 0p;				// no request to process ? => wait
 		return &pop_first( *qptr );
 	} // remove
-
-//	void ?{}( Buffer(T) & ) {}
-//	void ^?{}( Buffer(T) & mutex ) {}
 } // forall
 
@@ -74,7 +71,6 @@
 	unsigned int nprocessors, nworkers, nrqueues;		// number of processors/threads/request queues
 	bool sepClus;										// use same or separate cluster for executor
+	unsigned int next;									// demultiplexed across worker buffers
 }; // Executor
-
-static thread_local unsigned int next;					// demultiplexed across worker buffers
 
 unsigned int tickets( Executor & ex ) with(ex) {
@@ -109,5 +105,5 @@
 	ex{ nprocessors, nprocessors, nprocessors, sepClus };
 }
-void ?{}( Executor & ex ) {								// special for current cluster
+void ?{}( Executor & ex ) {								// special for current cluster, no processors added
 	ex{ 0, active_cluster()->nprocessors, false };
 }
@@ -131,5 +127,5 @@
 	free( workers );
 //	adelete( nrqueues, requests );
-	for ( i; nrqueues ) ^?{}( requests[i] );
+	for ( i; nrqueues ) ^?{}( requests[i] );			// FIX ME: problem with resolver
 	free( requests );
 	free( processors );
@@ -145,7 +141,7 @@
 int counter = 0;
 
-void workie( void ) {
+void work( void ) {
 	__atomic_add_fetch( &counter, 1, __ATOMIC_SEQ_CST );
-//	fprintf( stderr, "workie\n" );
+	// fprintf( stderr, "workie\n" );
 }
 
@@ -155,12 +151,8 @@
 	processor p[7];
 	{
-		printf( "%d\n", active_cluster()->nprocessors );
 		Executor exector;
 		for ( i; times ) {
-			send( exector, workie );
-			if ( i % 100 == 0 ) {
-//			  fprintf( stderr, "%d\n", i );
-				yield();
-			}
+			send( exector, work );
+			if ( i % 100 == 0 ) yield();
 		} // for
 	}
