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;

Reply via email to