code: static void offerLastTemporaryDirectBuffer(ByteBuffer buf) {
          assert buf != null;
          BufferCache cache = bufferCache.get();
          if (!cache.offerLast(buf)) {
              // cache is full
              free(buf);
          }
      }
docs: Releases a temporary buffer by returning to the cache or freeing it. If
  returning to the cache then insert it at the end. This makes it
  suitable for scatter/gather operations where the buffers are returned to
  cache in same order that they were obtained.