Index: libcfa/src/concurrency/io.cfa
===================================================================
--- libcfa/src/concurrency/io.cfa	(revision cb870e04a1fa8b52d7cbaa83d0b9a6ab245a2fd1)
+++ libcfa/src/concurrency/io.cfa	(revision 1076d05688c3384e8cffb420e43cc293bc3d3d7c)
@@ -1007,10 +1007,12 @@
 bool has_user_level_blocking( fptr_t func ) {
 	#if defined(HAVE_LINUX_IO_URING_H)
-		if( /*func == (fptr_t)preadv2 || */
-			func == (fptr_t)cfa_preadv2 )
-			#define _CFA_IO_FEATURE_IORING_OP_READV ,
-			return IS_DEFINED(IORING_OP_READV);
-
 		#if defined(HAVE_PREADV2)
+			if( /*func == (fptr_t)preadv2 || */
+				func == (fptr_t)cfa_preadv2 )
+				#define _CFA_IO_FEATURE_IORING_OP_READV ,
+				return IS_DEFINED(IORING_OP_READV);
+		#endif
+
+		#if defined(HAVE_PWRITEV2)
 			if( /*func == (fptr_t)pwritev2 || */
 				func == (fptr_t)cfa_pwritev2 )
@@ -1019,10 +1021,8 @@
 		#endif
 
-		#if defined(HAVE_PWRITEV2)
-			if( /*func == (fptr_t)fsync || */
-				func == (fptr_t)cfa_fsync )
-				#define _CFA_IO_FEATURE_IORING_OP_FSYNC ,
-				return IS_DEFINED(IORING_OP_FSYNC);
-		#endif
+		if( /*func == (fptr_t)fsync || */
+			func == (fptr_t)cfa_fsync )
+			#define _CFA_IO_FEATURE_IORING_OP_FSYNC ,
+			return IS_DEFINED(IORING_OP_FSYNC);
 
 		if( /*func == (fptr_t)ync_file_range || */
Index: libcfa/src/concurrency/kernel.cfa
===================================================================
--- libcfa/src/concurrency/kernel.cfa	(revision cb870e04a1fa8b52d7cbaa83d0b9a6ab245a2fd1)
+++ libcfa/src/concurrency/kernel.cfa	(revision 1076d05688c3384e8cffb420e43cc293bc3d3d7c)
@@ -250,5 +250,7 @@
 	}
 
-	pthread_join( kernel_thread, 0p );
+	int err = pthread_join( kernel_thread, 0p );
+	if( err != 0 ) abort("KERNEL ERROR: joining processor %p caused error %s\n", &this, strerror(err));
+
 	free( this.stack );
 }
@@ -824,4 +826,8 @@
 	// Destroy the main processor and its context in reverse order of construction
 	// These were manually constructed so we need manually destroy them
+	void ^?{}(processor & this) with( this ){
+		/* paranoid */ verify( this.do_terminate == true );
+	}
+
 	^(*mainProcessor){};
 
