-
Bug
-
Resolution: Fixed
-
P3
-
7, 8
-
b43
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8021923 | 8 | Yumin Qi | P3 | Closed | Fixed | b101 |
A DESCRIPTION OF THE PROBLEM :
In hotspot/src/share/vm/prims/unsafe.cpp near line 422 the following code appears.
I'm probably wrong - but isn't jdouble handling similar to jlong and should be " wrapped " for non-X86/non-SPARC CPUs?
DEFINE_GETSETOOP_VOLATILE(jboolean, Boolean)
DEFINE_GETSETOOP_VOLATILE(jbyte, Byte)
DEFINE_GETSETOOP_VOLATILE(jshort, Short);
DEFINE_GETSETOOP_VOLATILE(jchar, Char);
DEFINE_GETSETOOP_VOLATILE(jint, Int);
DEFINE_GETSETOOP_VOLATILE(jfloat, Float);
DEFINE_GETSETOOP_VOLATILE(jdouble, Double);
#if defined(SPARC) || defined(X86)
// Sparc and X86 have atomic jlong (8 bytes) instructions
DEFINE_GETSETOOP_VOLATILE(jlong, Long);
#endif
In hotspot/src/share/vm/prims/unsafe.cpp near line 422 the following code appears.
I'm probably wrong - but isn't jdouble handling similar to jlong and should be " wrapped " for non-X86/non-SPARC CPUs?
DEFINE_GETSETOOP_VOLATILE(jboolean, Boolean)
DEFINE_GETSETOOP_VOLATILE(jbyte, Byte)
DEFINE_GETSETOOP_VOLATILE(jshort, Short);
DEFINE_GETSETOOP_VOLATILE(jchar, Char);
DEFINE_GETSETOOP_VOLATILE(jint, Int);
DEFINE_GETSETOOP_VOLATILE(jfloat, Float);
DEFINE_GETSETOOP_VOLATILE(jdouble, Double);
#if defined(SPARC) || defined(X86)
// Sparc and X86 have atomic jlong (8 bytes) instructions
DEFINE_GETSETOOP_VOLATILE(jlong, Long);
#endif
- backported by
-
JDK-8021923 volatile double access via Unsafe.cpp is not atomic
-
- Closed
-