From dd24aebc2bb6e249e10c76185de77b4237b3e73c Mon Sep 17 00:00:00 2001
From: Daniel Mitterdorfer This method can only be used to measure elapsed time and is
* not related to any other notion of system or wall-clock time.
* The value returned represents nanoseconds since some fixed but
@@ -39,8 +39,8 @@ public interface IClock {
* how frequently values change. Differences in successive calls
* that span greater than approximately 292 years (263
* nanoseconds) will not accurately compute elapsed time due to
- * numerical overflow.
- *
For example, to measure how long some code takes to execute: *
* long startTime = clock.nanoTime();
From bf8f99b8f7578425f9a5eabe5c9fbbe456abcc25 Mon Sep 17 00:00:00 2001
From: Daniel Mitterdorfer
Date: Tue, 4 Oct 2016 12:19:28 +0200
Subject: [PATCH 2/4] Use NativeAffinity on Mac OS X
---
.../affinity/impl/NativeAffinity.java | 2 +-
.../native/Mac/x86_64/libaffinity.dylib | Bin 0 -> 10816 bytes
2 files changed, 1 insertion(+), 1 deletion(-)
create mode 100755 src/main/resources/com/higherfrequencytrading/affinity/native/Mac/x86_64/libaffinity.dylib
diff --git a/src/main/java/com/higherfrequencytrading/affinity/impl/NativeAffinity.java b/src/main/java/com/higherfrequencytrading/affinity/impl/NativeAffinity.java
index 0997f8b..3ee31c9 100644
--- a/src/main/java/com/higherfrequencytrading/affinity/impl/NativeAffinity.java
+++ b/src/main/java/com/higherfrequencytrading/affinity/impl/NativeAffinity.java
@@ -193,7 +193,7 @@ private static boolean loadAffinityNativeLibrary() {
String affinityNativeLibraryName = System.mapLibraryName("affinity");
// Load the os-dependent library from a jar file
- String affinityNativeLibraryPath = "/com/higherfrequencytrading/java/affinity/native/"
+ String affinityNativeLibraryPath = "/com/higherfrequencytrading/affinity/native/"
+ getNativeLibFolderPathForCurrentOS();
if (NativeAffinity.class.getResource(affinityNativeLibraryPath
diff --git a/src/main/resources/com/higherfrequencytrading/affinity/native/Mac/x86_64/libaffinity.dylib b/src/main/resources/com/higherfrequencytrading/affinity/native/Mac/x86_64/libaffinity.dylib
new file mode 100755
index 0000000000000000000000000000000000000000..66631597eb16ca296b015386e0931f71f3087759
GIT binary patch
literal 10816
zcmeHNeP|p-6rYQUO*Ks;*fxGtF0~Oq+FpuUiXU*PS=qE{s%@hE$4)nQd%0`(K61O8
zCStVGMp>?rLsSAHih}xwf}lbb+D82&?O!cYq)>(aqntECu!>Ql@%MIT+P!NM;|HR!
z58lkYH}Ac9^JaHucVWQY9NhtFbO!x=Kcv3fVdfuhW
z`};$MJxNP@?6UsanSH5DoToC0>@4=8^`532BBC*ja{}jjk|*+7TK7aM`#UP^B}LGP
z_V@Q{#&-LS({oY+a^BY3)#|H}&&M1&Jtt&W#*gz1#?%|yoRy!`UZZRRcBL+{XguYZ
z63w}x&1bJs_|-zf0HXc&$Uk}~Bv3z9Am<(Jom-T)b{X)nkP!BmprhisCOiJ;kB0vt
zAoauJQyO9s+ssFdY)msEMyiLfU(2KnL))zNYhB5_uEkpuiBu+K4Q|z9+ji_+7axQW
zyFu7Gw))+@2R~`FYQMk#!TYV|$STJ6yL}5YRtuS0oC=o+MqZ*W?iL@E5~O5=NA{0
zNp)0pl;dhaIey|ZU&BvNyhrAoBS{FV&WF3*?8Tjw6>4_Ds9I=Ho$jgipO?OY1LW8l
z8B<4=yoSn;<768s`ly0eW-JFMifZ9QG9c{2V4>z^eBG&q?kV-o
z2CJsD0%~RbKQMvb4NW2NlO_5N@K-Kf?B7j9b>CZA^boDQJFlykkZ_W=mfko7sB$;Fx`u`2U#k
zp;?Wyndaxv^_k|Pn?CQRFSzMTZaRu|4?h1QhL-7#Y_~I3Dy=I6F+FFcvKbl^#x`m3
za9+3Ud?wtl8MYoyc_
zq>Zko`@a_w|7>K6T}ufd^!Rob8fXYL)GewlqGk(8V3xL5J5G4Vb?c2Q&ml-
zm&ktrlBa*R5g{*{n^*n`$UpY0XMZKiF3e;99SCd|@=Zc~K7YQ1%)LT>`2ytY(C;Q8
z|JVZL?}L2j0_CN-%Dh_q|7{TY8j-IOd85edMP8{N&_M)(2m}!bA`nC%h(Hj5AOb-I
zf(Qf=2qF+fAc(+!Cj!?rH9kV#TodJVWUa;a@>p^&@3pmjoITvficy>|#=XPr9-Kep
zFuO?deT|+*4rk_8f^@*|3s;y)XeopEw}PJ&n^9>kmgJ(G$x&^Kuh!I!1o1Y4SH64I
zt6NkNy{rP;TBwi^;&f8V#i=Q$eKXEhuq!liYRXgToWVOaE7h;dlT^+IVmNc%>(y=U
zY=6L|@^Qm28s7^xLl?5*_zS9z6f>brrDL$GA-;Z>P}n-#W$~a
zx36d`R>DebwE5{{pc9Zf*}r=m$zUsptwSR3SDeJ|*lHh5^{at$AC2fvBz~IoZ8`u3
z)Kz=>l9u{%Urp-!X;;6_({Gphf|mMnpH1rfY0`gQ$nO*Sl9u{So_V)f^50LB{`*4z
zNue)kRJr|^`*1{)zMm%j6GH#6(3iB-m-}*3-%peNE#kh%PeNbP3(=30kO10Oy~#(@
zK50E@84tP#a1+{)_etn{ektnZ_$LG{$L|e6%XoYxXxYCTp-cMG-(7;XMLZ6H4zUnY
z4_>aI-*svEG%z++QBP+XetkOQ@Y6q6&~*ra%M$HT|857a0n+yLI$#8N2M`b?oJ)oT
z!nnziPIC7W1#atTG{JHA#b;rHq)$
literal 0
HcmV?d00001
From a94d13d3512422a1fd7a26359a92a0ee5c4761d0 Mon Sep 17 00:00:00 2001
From: Daniel Mitterdorfer
Date: Tue, 4 Oct 2016 15:13:05 +0200
Subject: [PATCH 3/4] Allow to build shared library on Linux on Mac OS X
With this commit we adapt the Makefile so it builds the shared library for Linux
and Mac OS X. Cross compilation is not supported.
---
.gitignore | 2 ++
src/main/c/Makefile | 29 +++++++++++++-----
.../native/Mac/x86_64/libaffinity.dylib | Bin 10816 -> 9540 bytes
.../native/Mac/x86_64/libaffinity.jnilib | Bin 10816 -> 9540 bytes
4 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/.gitignore b/.gitignore
index 28f3615..75c576a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,5 @@ affinity.ipr
target/
affinity.iws
+
+.DS_Store
\ No newline at end of file
diff --git a/src/main/c/Makefile b/src/main/c/Makefile
index 797d93f..597cb5f 100755
--- a/src/main/c/Makefile
+++ b/src/main/c/Makefile
@@ -6,17 +6,27 @@
# C sources to compile
TARGET_DIR := ../../../target/classes
-TARGET := $(TARGET_DIR)/libaffinity.so
-
+JAVA_BUILD_DIR := $(TARGET_DIR)
WORKING_DIR := $(TARGET_DIR)/../jni
-JAVA_BUILD_DIR := $(TARGET_DIR)
+SYS := $(shell gcc -dumpmachine)
+uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
-JAVA_HOME ?= /usr/java/default
-JAVA_LIB := $(JAVA_HOME)/jre/lib
-JVM_SHARED_LIBS := -L$(JAVA_LIB)/amd64/server -L$(JAVA_LIB)/i386/server -L$(JAVA_LIB)/amd64/jrockit/ -L$(JAVA_LIB)/i386/jrockit/
+ifeq ($(uname_S),Linux)
+ TARGET := $(TARGET_DIR)/libaffinity.so
+ JAVA_HOME := /usr/java/default
+ JAVA_LIB := $(JAVA_HOME)/jre/lib
+ INCLUDES := -I $(JAVA_HOME)/include -I $(JAVA_HOME)/include/linux -I $(WORKING_DIR)
+ JVM_SHARED_LIBS := -L$(JAVA_LIB)/amd64/server -L$(JAVA_LIB)/i386/server -L$(JAVA_LIB)/amd64/jrockit/ -L$(JAVA_LIB)/i386/jrockit/
+endif
-INCLUDES := -I $(JAVA_HOME)/include -I $(JAVA_HOME)/include/linux -I $(WORKING_DIR)
+ifeq ($(uname_S),Darwin)
+ TARGET := $(TARGET_DIR)/libaffinity.dylib
+ JAVA_HOME := $(shell /usr/libexec/java_home)
+ JAVA_LIB := $(JAVA_HOME)/jre/lib
+ INCLUDES := -I $(JAVA_HOME)/include -I $(JAVA_HOME)/include/darwin -I $(WORKING_DIR)
+ JVM_SHARED_LIBS := -L$(JAVA_LIB) -L$(JAVA_LIB)/server
+endif
# classpath for javah
ifdef CLASSPATH
@@ -27,7 +37,10 @@ endif
all: $(TARGET)
-$(TARGET): com_higherfrequencytrading_affinity_impl_NativeAffinity.c $(WORKING_DIR)/com_higherfrequencytrading_affinity_impl_NativeAffinity.h $(WORKING_DIR)/com_higherfrequencytrading_clock_impl_JNIClock.h $(WORKING_DIR)/com_higherfrequencytrading_busywaiting_impl_BusyWaiting.h
+$(TARGET_DIR)/libaffinity.dylib: com_higherfrequencytrading_affinity_impl_NativeAffinity_MacOSX.c $(WORKING_DIR)/com_higherfrequencytrading_affinity_impl_NativeAffinity.h $(WORKING_DIR)/com_higherfrequencytrading_clock_impl_JNIClock.h $(WORKING_DIR)/com_higherfrequencytrading_busywaiting_impl_BusyWaiting.h
+ gcc -O2 -shared -fPIC $(JVM_SHARED_LIBS) -ljvm $(INCLUDES) com_higherfrequencytrading_affinity_impl_NativeAffinity_MacOSX.c -o $(TARGET)
+
+$(TARGET_DIR)/libaffinity.so: com_higherfrequencytrading_affinity_impl_NativeAffinity.c $(WORKING_DIR)/com_higherfrequencytrading_affinity_impl_NativeAffinity.h $(WORKING_DIR)/com_higherfrequencytrading_clock_impl_JNIClock.h $(WORKING_DIR)/com_higherfrequencytrading_busywaiting_impl_BusyWaiting.h
gcc -O2 -shared -fPIC $(JVM_SHARED_LIBS) -ljvm -lrt $(INCLUDES) com_higherfrequencytrading_affinity_impl_NativeAffinity.c -o $(TARGET)
$(WORKING_DIR)/com_higherfrequencytrading_affinity_impl_NativeAffinity.h: $(TARGET_DIR)/com/higherfrequencytrading/affinity/impl/NativeAffinity.class
diff --git a/src/main/resources/com/higherfrequencytrading/affinity/native/Mac/x86_64/libaffinity.dylib b/src/main/resources/com/higherfrequencytrading/affinity/native/Mac/x86_64/libaffinity.dylib
index 66631597eb16ca296b015386e0931f71f3087759..afa0cc828ece50db26aa5a5e01974f1c557e330b 100755
GIT binary patch
literal 9540
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
diff --git a/src/main/resources/com/higherfrequencytrading/affinity/native/Mac/x86_64/libaffinity.jnilib b/src/main/resources/com/higherfrequencytrading/affinity/native/Mac/x86_64/libaffinity.jnilib
index 66631597eb16ca296b015386e0931f71f3087759..afa0cc828ece50db26aa5a5e01974f1c557e330b 100755
GIT binary patch
literal 9540
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
From 8687240fc077bba576a7408afa9e1a137560acc9 Mon Sep 17 00:00:00 2001
From: Peter Lawrey
Date: Wed, 6 Jun 2018 13:21:27 +0100
Subject: [PATCH 4/4] Update README
---
README | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/README b/README
index 46da3d9..1e24273 100644
--- a/README
+++ b/README
@@ -1,8 +1,15 @@
+This is an old version of this library kept here for historical purposes. The latest version is available here
+
+https://github.com/OpenHFT/Java-Thread-Affinity
+
+----
+
[ Project Development Summary ]
https://www.ohloh.net/p/Java-Thread-Affinity
[ Version History ]
+Verions 3.x - moved to https://github.com/OpenHFT/Java-Thread-Affinity
Version 1.6.3 - Added AffinityLock.isAllocated() and isBound() so you can check whether a CPU could be allocated.
@@ -44,4 +51,4 @@ Verison 1.0 - JNI implementation
[ Contributers ]
-peter.lawrey - Lead Developer.
\ No newline at end of file
+peter.lawrey - Lead Developer.