summaryrefslogtreecommitdiff
path: root/java/jdk15/files/patch-hotspot::vm::thread_bsd.inline.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'java/jdk15/files/patch-hotspot::vm::thread_bsd.inline.hpp')
-rw-r--r--java/jdk15/files/patch-hotspot::vm::thread_bsd.inline.hpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/java/jdk15/files/patch-hotspot::vm::thread_bsd.inline.hpp b/java/jdk15/files/patch-hotspot::vm::thread_bsd.inline.hpp
new file mode 100644
index 000000000000..794d795d04a4
--- /dev/null
+++ b/java/jdk15/files/patch-hotspot::vm::thread_bsd.inline.hpp
@@ -0,0 +1,16 @@
+$FreeBSD$
+
+--- ../../hotspot/src/os/bsd/vm/thread_bsd.inline.hpp.orig Thu Jun 15 17:58:02 2006
++++ ../../hotspot/src/os/bsd/vm/thread_bsd.inline.hpp Thu Jun 15 17:59:19 2006
+@@ -19,7 +19,10 @@
+
+ uintptr_t raw = pd_raw_thread_id();
+ int ix = pd_cache_index(raw);
+-#ifdef __OpenBSD__
++// XXXBSD: disable fast case. there is a race condition where the
++// fast case returns a different thread from the slow case and has
++// been seen on both OpenBSD and FreeBSD.
++#if 1
+ return ThreadLocalStorage::get_thread_via_cache_slowly(raw, ix);
+ #else
+ Thread *Candidate = ThreadLocalStorage::_get_thread_cache[ix];