equal
deleted
inserted
replaced
49 private static final int TEMP_BUF_POOL_SIZE = 3; |
49 private static final int TEMP_BUF_POOL_SIZE = 3; |
50 |
50 |
51 // Per-thread soft cache of the last temporary direct buffer |
51 // Per-thread soft cache of the last temporary direct buffer |
52 private static ThreadLocal<SoftReference<ByteBuffer>>[] bufferPool; |
52 private static ThreadLocal<SoftReference<ByteBuffer>>[] bufferPool; |
53 |
53 |
|
54 @SuppressWarnings("unchecked") |
|
55 static ThreadLocal<SoftReference<ByteBuffer>>[] createThreadLocalBufferPool() { |
|
56 return new ThreadLocal[TEMP_BUF_POOL_SIZE]; |
|
57 } |
|
58 |
54 static { |
59 static { |
55 bufferPool = (ThreadLocal<SoftReference<ByteBuffer>>[]) |
60 bufferPool = createThreadLocalBufferPool(); |
56 new ThreadLocal[TEMP_BUF_POOL_SIZE]; |
|
57 for (int i=0; i<TEMP_BUF_POOL_SIZE; i++) |
61 for (int i=0; i<TEMP_BUF_POOL_SIZE; i++) |
58 bufferPool[i] = new ThreadLocal<SoftReference<ByteBuffer>>(); |
62 bufferPool[i] = new ThreadLocal<SoftReference<ByteBuffer>>(); |
59 } |
63 } |
60 |
64 |
61 static ByteBuffer getTemporaryDirectBuffer(int size) { |
65 static ByteBuffer getTemporaryDirectBuffer(int size) { |