Index: libcfa/src/concurrency/ready_queue.cfa
===================================================================
--- libcfa/src/concurrency/ready_queue.cfa	(revision 3e1a705d86b7fee2405d00dbd0589103ff8e2b97)
+++ libcfa/src/concurrency/ready_queue.cfa	(revision 16800728942a47f77748c1e6da52e1f54dd89756)
@@ -398,13 +398,11 @@
 
 		if(proc->rdq.target == -1u) {
-			_Static_assert(READYQ_SHARD_FACTOR == 2);
-			unsigned idx1 = proc->rdq.id + 0;
-			unsigned idx2 = proc->rdq.id + 1;
-			unsigned long long tsc1 = ts(lanes.data[idx1]);
-			unsigned long long tsc2 = ts(lanes.data[idx2]);
+			unsigned long long min = ts(lanes.data[proc->rdq.id]);
+			for(int i = 0; i < READYQ_SHARD_FACTOR; i++) {
+				unsigned long long tsc = ts(lanes.data[proc->rdq.id + i]);
+				if(tsc < min) min = tsc;
+			}
+			proc->rdq.cutoff = min;
 			proc->rdq.target = __tls_rand() % lanes.count;
-
-			// WARNING: std::min is polymorphic and therefore causes 500% slowdown instead of the expected 2%
-			proc->rdq.cutoff = tsc1 < tsc2 ? tsc1 : tsc2;
 		}
 		else {
