cassandra-pr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jasobrown <...@git.apache.org>
Subject [GitHub] cassandra pull request #236: 9608 trunk
Date Mon, 23 Jul 2018 11:58:41 GMT
Github user jasobrown commented on a diff in the pull request:

    https://github.com/apache/cassandra/pull/236#discussion_r204370957
  
    --- Diff: src/java/org/apache/cassandra/io/util/FileUtils.java ---
    @@ -350,13 +396,38 @@ public static String getRelativePath(String basePath, String path)
     
         public static void clean(ByteBuffer buffer)
         {
    -        if (buffer == null)
    +        if (buffer == null || !buffer.isDirect())
                 return;
    -        if (isCleanerAvailable && buffer.isDirect())
    +
    +        // TODO Once we can get rid of Java 8, it's simpler to call sun.misc.Unsafe.invokeCleaner(ByteBuffer),
    +        // but need to take care of the attachment handling (i.e. whether 'buf' is a
duplicate or slice) - that
    +        // is different in sun.misc.Unsafe.invokeCleaner and this implementation.
    +
    +        try
             {
    -            DirectBuffer db = (DirectBuffer) buffer;
    -            if (db.cleaner() != null)
    -                db.cleaner().clean();
    +            if (buffer.isDirect())
    +            {
    +                Object cleaner = mhDirectBufferCleaner.bindTo(buffer).invoke();
    --- End diff --
    
    Can you add some comments here? It's not clear what's going on, but more importantly,
why there's two code paths.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: pr-unsubscribe@cassandra.apache.org
For additional commands, e-mail: pr-help@cassandra.apache.org


Mime
View raw message