< prev index next >
src/hotspot/share/runtime/os.cpp
Print this page
*** 853,863 ****
int os::random() {
// Make updating the random seed thread safe.
while (true) {
unsigned int seed = _rand_seed;
unsigned int rand = random_helper(seed);
! if (Atomic::cmpxchg(rand, &_rand_seed, seed) == seed) {
return static_cast<int>(rand);
}
}
}
--- 853,863 ----
int os::random() {
// Make updating the random seed thread safe.
while (true) {
unsigned int seed = _rand_seed;
unsigned int rand = random_helper(seed);
! if (Atomic::cmpxchg(&_rand_seed, seed, rand) == seed) {
return static_cast<int>(rand);
}
}
}
*** 1802,1812 ****
* returns the state set after the method is complete
*/
os::SuspendResume::State os::SuspendResume::switch_state(os::SuspendResume::State from,
os::SuspendResume::State to)
{
! os::SuspendResume::State result = Atomic::cmpxchg(to, &_state, from);
if (result == from) {
// success
return to;
}
return result;
--- 1802,1812 ----
* returns the state set after the method is complete
*/
os::SuspendResume::State os::SuspendResume::switch_state(os::SuspendResume::State from,
os::SuspendResume::State to)
{
! os::SuspendResume::State result = Atomic::cmpxchg(&_state, from, to);
if (result == from) {
// success
return to;
}
return result;
< prev index next >