Home / Function/ Chunk() — netty Function Reference

Chunk() — netty Function Reference

Architecture documentation for the Chunk() function in AdaptivePoolingAllocator.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  8edf4271_5ef6_204f_a88c_f516a308944f["Chunk()"]
  ce074796_a915_3e8e_0b02_6bb0f820ea3e["ConcurrentSkipListChunkCache"]
  8edf4271_5ef6_204f_a88c_f516a308944f -->|defined in| ce074796_a915_3e8e_0b02_6bb0f820ea3e
  1fed9ab7_5a1d_51fc_3bb4_e5426c8fe9db["isEmpty()"]
  8edf4271_5ef6_204f_a88c_f516a308944f -->|calls| 1fed9ab7_5a1d_51fc_3bb4_e5426c8fe9db
  2b1d13b5_b5b9_8db8_baa4_b5edd12f88d0["remove()"]
  8edf4271_5ef6_204f_a88c_f516a308944f -->|calls| 2b1d13b5_b5b9_8db8_baa4_b5edd12f88d0
  04f8cd58_f031_827b_41fb_b7445b790e37["hasUnprocessedFreelistEntries()"]
  8edf4271_5ef6_204f_a88c_f516a308944f -->|calls| 04f8cd58_f031_827b_41fb_b7445b790e37
  64a005fb_49a2_2033_49c6_cbcbad4ec48a["processFreelistEntries()"]
  8edf4271_5ef6_204f_a88c_f516a308944f -->|calls| 64a005fb_49a2_2033_49c6_cbcbad4ec48a
  aa355cc9_0be7_7204_fd7f_51edca001d83["remainingCapacity()"]
  8edf4271_5ef6_204f_a88c_f516a308944f -->|calls| aa355cc9_0be7_7204_fd7f_51edca001d83
  style 8edf4271_5ef6_204f_a88c_f516a308944f fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

buffer/src/main/java/io/netty/buffer/AdaptivePoolingAllocator.java lines 563–603

        @Override
        public Chunk pollChunk(int size) {
            if (chunks.isEmpty()) {
                return null;
            }
            IntEntry<Chunk> entry = chunks.pollCeilingEntry(size);
            if (entry != null) {
                Chunk chunk = entry.getValue();
                if (chunk.hasUnprocessedFreelistEntries()) {
                    chunk.processFreelistEntries();
                }
                return chunk;
            }

            Chunk bestChunk = null;
            int bestRemainingCapacity = 0;
            Iterator<IntEntry<Chunk>> itr = chunks.iterator();
            while (itr.hasNext()) {
                entry = itr.next();
                final Chunk chunk;
                if (entry != null && (chunk = entry.getValue()).hasUnprocessedFreelistEntries()) {
                    if (!chunks.remove(entry.getKey(), entry.getValue())) {
                        continue;
                    }
                    chunk.processFreelistEntries();
                    int remainingCapacity = chunk.remainingCapacity();
                    if (remainingCapacity >= size &&
                            (bestChunk == null || remainingCapacity > bestRemainingCapacity)) {
                        if (bestChunk != null) {
                            chunks.put(bestRemainingCapacity, bestChunk);
                        }
                        bestChunk = chunk;
                        bestRemainingCapacity = remainingCapacity;
                    } else {
                        chunks.put(remainingCapacity, chunk);
                    }
                }
            }

            return bestChunk;
        }

Domain

Subdomains

Frequently Asked Questions

What does Chunk() do?
Chunk() is a function in the netty codebase, defined in buffer/src/main/java/io/netty/buffer/AdaptivePoolingAllocator.java.
Where is Chunk() defined?
Chunk() is defined in buffer/src/main/java/io/netty/buffer/AdaptivePoolingAllocator.java at line 563.
What does Chunk() call?
Chunk() calls 5 function(s): hasUnprocessedFreelistEntries, isEmpty, processFreelistEntries, remainingCapacity, remove.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free