OpenHFT / Java-Thread-Affinity

Bind a java thread to a given core
http://chronicle.software/products/thread-affinity/
Apache License 2.0
1.78k stars 360 forks source link

fixed NumberFormatException when core 63 was used in -Daffinity.reserved #86

Open m-anthony opened 2 years ago

m-anthony commented 2 years ago

The fix for using -Daffinity.reserved with more than 64 core (#68) has an issue : to compute the bitset representing that mask, it uses under the hood Long.parseLong(substring, 16) where substring is at most 16 hexadecimal digits. Unfortunately, if the highest bit is set (so if core 63 is selected in the mask), it will cause a NumberFormatException because there is an overflow (because Java types are all signed).

This PR fixes that by splitting the parsing into 2 ints and combining them into a long

JerryShea commented 2 years ago

Thanks @m-anthony - could I suggest you add a test that would have failed with the old behaviour?

JerryShea commented 1 year ago

Hi @m-anthony this sounds useful. Could you add a test that would have failed with the old behaviour?