Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
In JDK-8058209 I discovered that two stores separated by a call to OrderAccess::storestore were in fact incorrectly reordered by GCC, exposing a race condition and causing crashes in the G1 collector. The suggested fix is to add a proper "compiler barrier" to the acquire() and release() functions in orderAccess_linux_x86.hpp to ensure that no compiler reordering occurs. Something along the lines of: static inline void compiler_barrier() { __asm__ volatile ("" : : : "memory"); }
|