@@ -208,11 +208,11 @@ if (cur < tax && !force) { // Progress depleted, alas. return false; } new_val = cur - tax; - } while (Atomic::cmpxchg(new_val, &_budget, cur) != cur); + } while (Atomic::cmpxchg(&_budget, cur, new_val) != cur); return true; } void ShenandoahPacer::unpace_for_alloc(intptr_t epoch, size_t words) { assert(ShenandoahPacing, "Only be here when pacing is enabled");