Index: libcfa/src/concurrency/io.cfa
===================================================================
--- libcfa/src/concurrency/io.cfa	(revision 986cb99435d178f4b220a3a48062591a4d88fe7c)
+++ libcfa/src/concurrency/io.cfa	(revision c1c95b170b12b5d8d9988a2c2ce855a01393976c)
@@ -90,5 +90,5 @@
 	static inline __u32 __release_sqes( struct $io_context & );
 
-	void __cfa_io_drain( processor * proc ) {
+	bool __cfa_io_drain( processor * proc ) {
 		/* paranoid */ verify( ! __preemption_enabled() );
 		/* paranoid */ verify( proc );
@@ -104,4 +104,6 @@
 		__STATS__( false, io.calls.drain++; io.calls.completed += count; )
 
+		if(count == 0) return false;
+
 		for(i; count) {
 			unsigned idx = (head + i) & mask;
@@ -124,5 +126,5 @@
 		/* paranoid */ verify( ! __preemption_enabled() );
 
-		return;
+		return true;
 	}
 
Index: libcfa/src/concurrency/kernel.cfa
===================================================================
--- libcfa/src/concurrency/kernel.cfa	(revision 986cb99435d178f4b220a3a48062591a4d88fe7c)
+++ libcfa/src/concurrency/kernel.cfa	(revision c1c95b170b12b5d8d9988a2c2ce855a01393976c)
@@ -118,8 +118,8 @@
 
 extern void __cfa_io_start( processor * );
-extern void __cfa_io_drain( processor * );
+extern bool __cfa_io_drain( processor * );
 extern void __cfa_io_flush( processor * );
 extern void __cfa_io_stop ( processor * );
-static inline void __maybe_io_drain( processor * );
+static inline bool __maybe_io_drain( processor * );
 
 extern void __disable_interrupts_hard();
@@ -743,5 +743,5 @@
 #endif
 
-static inline void __maybe_io_drain( processor * proc ) {
+static inline bool __maybe_io_drain( processor * proc ) {
 	#if defined(CFA_HAVE_LINUX_IO_URING_H)
 		__cfadbg_print_safe(runtime_core, "Kernel : core %p checking io for ring %d\n", proc, proc->io.ctx->fd);
@@ -751,5 +751,6 @@
 		unsigned head = *ctx->cq.head;
 		unsigned tail = *ctx->cq.tail;
-		if(head != tail) __cfa_io_drain( proc );
+		if(head == tail) return false;
+		return __cfa_io_drain( proc );
 	#endif
 }
