This is an automated email from the ASF dual-hosted git repository.
alexpl pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new b1b76e04836 IGNITE-21225 Fix redundant lambda object allocation in
ClockPageReplacementFlags#setFlag - Fixes #11170.
b1b76e04836 is described below
commit b1b76e0483606146b607da69ac437ba9f1f07c54
Author: Aleksey Plekhanov <[email protected]>
AuthorDate: Thu May 23 23:48:32 2024 +0300
IGNITE-21225 Fix redundant lambda object allocation in
ClockPageReplacementFlags#setFlag - Fixes #11170.
Signed-off-by: Aleksey Plekhanov <[email protected]>
---
.../cache/persistence/pagemem/ClockPageReplacementFlags.java | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/ClockPageReplacementFlags.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/ClockPageReplacementFlags.java
index a5f783a973a..a9e57b06f15 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/ClockPageReplacementFlags.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/ClockPageReplacementFlags.java
@@ -17,7 +17,7 @@
package org.apache.ignite.internal.processors.cache.persistence.pagemem;
-import java.util.function.LongUnaryOperator;
+import java.util.function.LongBinaryOperator;
import org.apache.ignite.configuration.PageReplacementMode;
import org.apache.ignite.internal.util.GridUnsafe;
@@ -109,7 +109,7 @@ public class ClockPageReplacementFlags {
* @param pageIdx Page index.
*/
public void clearFlag(int pageIdx) {
- compareAndSwapFlag(pageIdx, flags -> flags & ~(1L << pageIdx));
+ compareAndSwapFlag(pageIdx, (flags, idx) -> flags & ~(1L << idx));
}
/**
@@ -118,7 +118,7 @@ public class ClockPageReplacementFlags {
* @param pageIdx Page index.
*/
public void setFlag(int pageIdx) {
- compareAndSwapFlag(pageIdx, flags -> flags | (1L << pageIdx));
+ compareAndSwapFlag(pageIdx, (flags, idx) -> flags | (1L << idx));
}
/**
@@ -127,7 +127,7 @@ public class ClockPageReplacementFlags {
* @param pageIdx Page index.
* @param func Function to apply to flags.
*/
- private void compareAndSwapFlag(int pageIdx, LongUnaryOperator func) {
+ private void compareAndSwapFlag(int pageIdx, LongBinaryOperator func) {
long ptr = flagsPtr + ((pageIdx >> 3) & (~7L));
long oldFlags;
@@ -135,7 +135,7 @@ public class ClockPageReplacementFlags {
do {
oldFlags = GridUnsafe.getLong(ptr);
- newFlags = func.applyAsLong(oldFlags);
+ newFlags = func.applyAsLong(oldFlags, pageIdx);
if (oldFlags == newFlags)
return;