Index: benchmark/io/readv.cfa
===================================================================
--- benchmark/io/readv.cfa	(revision 2a01c9b2889ff03ce2683f454c6a85e073053e02)
+++ benchmark/io/readv.cfa	(revision 40b54179e79c7f8d042e041392f0013ec10ed81b)
@@ -17,5 +17,4 @@
 #include <time.hfa>
 
-extern bool traceHeapOn();
 extern ssize_t async_preadv2(int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags);
 
@@ -39,4 +38,6 @@
 }
 
+Time now(void);
+
 int main(int argc, char * argv[]) {
 	double duration   = 5.0;
@@ -44,7 +45,5 @@
 	unsigned long int nprocs   = 1;
 
-	printf("Setting local\n");
 	setlocale(LC_NUMERIC, "");
-
 
 	arg_loop:
@@ -77,5 +76,5 @@
 			case 't':
 				nthreads = strtoul(arg, &end, 10);
-				if(*end != '\0' || nthreads < 1) {
+				if(*end != '\0') {
 					fprintf(stderr, "Number of threads must be a positive integer, was %s\n", arg);
 					goto usage;
@@ -84,5 +83,5 @@
 			case 'p':
 				nprocs = strtoul(arg, &end, 10);
-				if(*end != '\0' || nprocs < 1) {
+				if(*end != '\0') {
 					fprintf(stderr, "Number of processors must be a positive integer, was %s\n", arg);
 					goto usage;
@@ -120,5 +119,5 @@
 	Time start, end;
 	{
-		processor procs[nprocs - 1];
+		processor procs[nprocs];
 		{
 			Reader threads[nthreads];
@@ -135,4 +134,5 @@
 		}
 	}
+	printf("Done\n");
 	printf("Took %ld ms\n", (end - start)`ms);
 	printf("Total reads:      %'zu\n", count);
@@ -140,4 +140,3 @@
 
 	close(fd);
-	printf("Done\n");
 }
Index: libcfa/src/concurrency/io.cfa
===================================================================
--- libcfa/src/concurrency/io.cfa	(revision 2a01c9b2889ff03ce2683f454c6a85e073053e02)
+++ libcfa/src/concurrency/io.cfa	(revision 40b54179e79c7f8d042e041392f0013ec10ed81b)
@@ -36,32 +36,4 @@
 
 	static void * __io_poller( void * arg );
-
-       // Weirdly, some systems that do support io_uring don't actually define these
-       #ifdef __alpha__
-       /*
-       * alpha is the only exception, all other architectures
-       * have common numbers for new system calls.
-       */
-       # ifndef __NR_io_uring_setup
-       #  define __NR_io_uring_setup           535
-       # endif
-       # ifndef __NR_io_uring_enter
-       #  define __NR_io_uring_enter           536
-       # endif
-       # ifndef __NR_io_uring_register
-       #  define __NR_io_uring_register        537
-       # endif
-       #else /* !__alpha__ */
-       # ifndef __NR_io_uring_setup
-       #  define __NR_io_uring_setup           425
-       # endif
-       # ifndef __NR_io_uring_enter
-       #  define __NR_io_uring_enter           426
-       # endif
-       # ifndef __NR_io_uring_register
-       #  define __NR_io_uring_register        427
-       # endif
-       #endif
-
 
 //=============================================================================================
@@ -216,5 +188,5 @@
 
 		struct io_user_data * data = (struct io_user_data *)cqe.user_data;
-		// __cfaabi_bits_print_safe( STDERR_FILENO, "Performed reading io cqe %p, result %d for %p\n", data, cqe.res, data->thrd );
+		__cfaabi_bits_print_safe( STDERR_FILENO, "Performed reading io cqe %p, result %d for %p\n", data, cqe.res, data->thrd );
 
 		data->result = cqe.res;
@@ -324,5 +296,5 @@
 	// Submit however, many entries need to be submitted
 	int ret = syscall( __NR_io_uring_enter, ring.fd, 1, 0, 0, 0p, 0);
-	// __cfaabi_bits_print_safe( STDERR_FILENO, "Performed io_submit, returned %d\n", ret );
+	__cfaabi_bits_print_safe( STDERR_FILENO, "Performed io_submit, returned %d\n", ret );
 	if( ret < 0 ) {
 		switch((int)errno) {
@@ -380,5 +352,5 @@
 	#define __submit_wait \
 		io_user_data data = { 0, active_thread() }; \
-		/*__cfaabi_bits_print_safe( STDERR_FILENO, "Preparing user data %p for %p\n", &data, data.thrd );*/ \
+		__cfaabi_bits_print_safe( STDERR_FILENO, "Preparing user data %p for %p\n", &data, data.thrd ); \
 		sqe->user_data = (uint64_t)&data; \
 		__submit( ring, idx ); \
@@ -603,6 +575,5 @@
 	int async_statx(int dirfd, const char *pathname, int flags, unsigned int mask, struct statx *statxbuf) {
 		#if !defined(IORING_OP_STATX)
-			//return statx( dirfd, pathname, flags, mask, statxbuf );
-			return syscall( __NR_io_uring_setup, dirfd, pathname, flags, mask, statxbuf );
+			return statx( dirfd, pathname, flags, mask, statxbuf );
 		#else
 			__submit_prelude
Index: libcfa/src/concurrency/preemption.cfa
===================================================================
--- libcfa/src/concurrency/preemption.cfa	(revision 2a01c9b2889ff03ce2683f454c6a85e073053e02)
+++ libcfa/src/concurrency/preemption.cfa	(revision 40b54179e79c7f8d042e041392f0013ec10ed81b)
@@ -97,8 +97,4 @@
 	while( node = get_expired( alarms, currtime ) ) {
 		// __cfaabi_dbg_print_buffer_decl( " KERNEL: preemption tick.\n" );
-		Duration period = node->period;
-		if( period == 0) {
-			node->set = false;                  // Node is one-shot, just mark it as not pending
-		}
 
 		// Check if this is a kernel
@@ -111,8 +107,12 @@
 
 		// Check if this is a periodic alarm
+		Duration period = node->period;
 		if( period > 0 ) {
 			// __cfaabi_dbg_print_buffer_local( " KERNEL: alarm period is %lu.\n", period.tv );
 			node->alarm = currtime + period;    // Alarm is periodic, add currtime to it (used cached current time)
 			insert( alarms, node );             // Reinsert the node for the next time it triggers
+		}
+		else {
+			node->set = false;                  // Node is one-shot, just mark it as not pending
 		}
 	}
Index: tests/vector.cfa
===================================================================
--- tests/vector.cfa	(revision 2a01c9b2889ff03ce2683f454c6a85e073053e02)
+++ tests/vector.cfa	(revision 40b54179e79c7f8d042e041392f0013ec10ed81b)
@@ -14,6 +14,6 @@
 //
 
+#include <fstream.hfa>
 #include <vector.hfa>
-#include <fstream.hfa>
 
 #undef assert
@@ -28,8 +28,4 @@
 int main() {
 	vector( int ) iv;
-
-	assert( ((uintptr_t)&iv.storage.storage ) == (((uintptr_t)&iv)) );
-	assert( ((uintptr_t)&iv.storage.capacity) == (((uintptr_t)&iv) + sizeof(void *)) );
-	assert( ((uintptr_t)&iv.size            ) == (((uintptr_t)&iv) + sizeof(void *) + sizeof(size_t)) );
 
 	assert( empty( &iv ) );
