Index: libcfa/src/concurrency/io.cfa
===================================================================
--- libcfa/src/concurrency/io.cfa	(revision 601165821d0880d71183d817e5e75ac1e73f37ec)
+++ libcfa/src/concurrency/io.cfa	(revision fe9468e277ef63e8b357a912be5295032d77be2c)
@@ -160,5 +160,5 @@
 	static inline void process(struct io_uring_cqe & cqe ) {
 		struct io_future_t * future = (struct io_future_t *)(uintptr_t)cqe.user_data;
-		__cfadbg_print_safe( io, "Kernel I/O : Syscall completed : cqe %p, result %d for %p\n", future, cqe.res, data->thrd );
+		__cfadbg_print_safe( io, "Kernel I/O : Syscall completed : cqe %p, result %d for %p\n", &cqe, cqe.res, future );
 
 		fulfil( *future, cqe.res );
@@ -298,7 +298,5 @@
 		__u32 mask = *ring.submit_q.mask;
 
-		disable_interrupts();
-			__u32 off = __tls_rand();
-		enable_interrupts( __cfaabi_dbg_ctx );
+		__u32 off = thread_rand();
 
 		// Loop around looking for an available spot
@@ -344,7 +342,5 @@
 		__u32 ready_mask = ring.submit_q.ready_cnt - 1;
 
-		disable_interrupts();
-			__u32 off = __tls_rand();
-		enable_interrupts( __cfaabi_dbg_ctx );
+		__u32 off = thread_rand();
 
 		__u32 picked;
Index: libcfa/src/concurrency/io/call.cfa.in
===================================================================
--- libcfa/src/concurrency/io/call.cfa.in	(revision 601165821d0880d71183d817e5e75ac1e73f37ec)
+++ libcfa/src/concurrency/io/call.cfa.in	(revision fe9468e277ef63e8b357a912be5295032d77be2c)
@@ -84,5 +84,5 @@
 
 		/* paranoid */ verifyf( cltr->io.ctxs, "default io contexts for cluster %p are missing\\n", cltr);
-		return &cltr->io.ctxs[ __tls_rand() % cltr->io.cnt ];
+		return &cltr->io.ctxs[ thread_rand() % cltr->io.cnt ];
 	}
 #endif
Index: libcfa/src/concurrency/kernel/fwd.hfa
===================================================================
--- libcfa/src/concurrency/kernel/fwd.hfa	(revision 601165821d0880d71183d817e5e75ac1e73f37ec)
+++ libcfa/src/concurrency/kernel/fwd.hfa	(revision fe9468e277ef63e8b357a912be5295032d77be2c)
@@ -132,4 +132,6 @@
 		}
 
+		extern uint64_t thread_rand();
+
 		//-----------------------------------------------------------------------
 		// Statics call at the end of each thread to register statistics
Index: libcfa/src/concurrency/thread.cfa
===================================================================
--- libcfa/src/concurrency/thread.cfa	(revision 601165821d0880d71183d817e5e75ac1e73f37ec)
+++ libcfa/src/concurrency/thread.cfa	(revision fe9468e277ef63e8b357a912be5295032d77be2c)
@@ -162,4 +162,11 @@
 }
 
+uint64_t thread_rand() {
+	disable_interrupts();
+	uint64_t ret = __tls_rand();
+	enable_interrupts( __cfaabi_dbg_ctx );
+	return ret;
+}
+
 // Local Variables: //
 // mode: c //
