--- a/src/hotspot/share/jfr/recorder/storage/jfrBuffer.cpp Mon Nov 25 12:32:40 2019 +0100
+++ b/src/hotspot/share/jfr/recorder/storage/jfrBuffer.cpp Mon Nov 25 12:33:15 2019 +0100
@@ -104,7 +104,7 @@
const u1* JfrBuffer::concurrent_top() const {
do {
const u1* current_top = stable_top();
- if (Atomic::cmpxchg(MUTEX_CLAIM, &_top, current_top) == current_top) {
+ if (Atomic::cmpxchg(&_top, current_top, MUTEX_CLAIM) == current_top) {
return current_top;
}
} while (true);
@@ -128,13 +128,13 @@
const void* current_id;
do {
current_id = Atomic::load(&_identity);
- } while (current_id != NULL || Atomic::cmpxchg(id, &_identity, current_id) != current_id);
+ } while (current_id != NULL || Atomic::cmpxchg(&_identity, current_id, id) != current_id);
}
bool JfrBuffer::try_acquire(const void* id) {
assert(id != NULL, "invariant");
const void* const current_id = Atomic::load(&_identity);
- return current_id == NULL && Atomic::cmpxchg(id, &_identity, current_id) == current_id;
+ return current_id == NULL && Atomic::cmpxchg(&_identity, current_id, id) == current_id;
}
void JfrBuffer::release() {