From e03f92ff5efd935015e7597da188192f77b1a3ab Mon Sep 17 00:00:00 2001 From: m-anthony Date: Thu, 26 Nov 2020 09:30:48 +0100 Subject: [PATCH] Support for more than 64 core in -Daffinity.reserved --- .../main/java/net/openhft/affinity/AffinityLock.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/affinity/src/main/java/net/openhft/affinity/AffinityLock.java b/affinity/src/main/java/net/openhft/affinity/AffinityLock.java index f2a8f10f7..7f4018e1b 100644 --- a/affinity/src/main/java/net/openhft/affinity/AffinityLock.java +++ b/affinity/src/main/java/net/openhft/affinity/AffinityLock.java @@ -128,8 +128,14 @@ private static BitSet getReservedAffinity0() { return reserverable; } - long[] longs = new long[1]; - longs[0] = Long.parseLong(reservedAffinity, 16); + reservedAffinity = reservedAffinity.trim(); + long[] longs = new long[1 + (reservedAffinity.length() - 1) / 16]; + int end = reservedAffinity.length(); + for(int i = 0; i < longs.length ; i++) { + int begin = Math.max(0, end - 16); + longs[i] = Long.parseLong(reservedAffinity.substring(begin, end), 16); + end = begin; + } return BitSet.valueOf(longs); }