1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.netty5.buffer.api.pool;
17
18 import io.netty5.buffer.api.Buffer;
19 import io.netty5.buffer.api.Drop;
20
21 class PooledDrop implements Drop<Buffer> {
22 private final Drop<Buffer> baseDrop;
23 private final PoolChunk chunk;
24 private final PoolThreadCache threadCache;
25 private final long handle;
26 private final int normSize;
27
28 PooledDrop(PoolChunk chunk, PoolThreadCache threadCache, long handle, int normSize) {
29 baseDrop = chunk.baseDrop.fork();
30 this.chunk = chunk;
31 this.threadCache = threadCache;
32 this.handle = handle;
33 this.normSize = normSize;
34 }
35
36 @Override
37 public void drop(Buffer obj) {
38 chunk.arena.free(chunk, handle, normSize, threadCache);
39 baseDrop.drop(chunk.base);
40 }
41
42 @Override
43 public Drop<Buffer> fork() {
44 return new PooledDrop(chunk, threadCache, handle, normSize);
45 }
46
47 @Override
48 public void attach(Buffer obj) {
49 }
50 }