< prev index next >

src/hotspot/share/jfr/recorder/service/jfrPostBox.cpp

Print this page

        

@@ -85,11 +85,11 @@
 void JfrPostBox::deposit(int new_messages) {
   while (true) {
     const int current_msgs = Atomic::load(&_messages);
     // OR the new message
     const int exchange_value = current_msgs | new_messages;
-    const int result = Atomic::cmpxchg(exchange_value, &_messages, current_msgs);
+    const int result = Atomic::cmpxchg(&_messages, current_msgs, exchange_value);
     if (result == current_msgs) {
       return;
     }
     /* Some other thread just set exactly what this thread wanted */
     if ((result & new_messages) == new_messages) {

@@ -137,11 +137,11 @@
   return Atomic::load(&_messages) == 0;
 }
 
 int JfrPostBox::collect() {
   // get pending and reset to 0
-  const int messages = Atomic::xchg(0, &_messages);
+  const int messages = Atomic::xchg(&_messages, 0);
   if (check_waiters(messages)) {
     _has_waiters = true;
     assert(JfrMsg_lock->owned_by_self(), "incrementing _msg_read_serial is protected by JfrMsg_lock");
     // Update made visible on release of JfrMsg_lock via fence instruction in Monitor::IUnlock.
     ++_msg_read_serial;
< prev index next >