Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Request() [2/2]

static CachedBuffer Terraria.DataStructures.BufferPool.Request ( int size)
inlinestatic

Definition at line 22 of file BufferPool.cs.

23 {
25 {
26 if (size <= 32)
27 {
28 if (SmallBufferQueue.Count == 0)
29 {
30 return new CachedBuffer(new byte[32]);
31 }
32 return SmallBufferQueue.Dequeue().Activate();
33 }
34 if (size <= 256)
35 {
36 if (MediumBufferQueue.Count == 0)
37 {
38 return new CachedBuffer(new byte[256]);
39 }
40 return MediumBufferQueue.Dequeue().Activate();
41 }
42 if (size <= 16384)
43 {
44 if (LargeBufferQueue.Count == 0)
45 {
46 return new CachedBuffer(new byte[16384]);
47 }
48 return LargeBufferQueue.Dequeue().Activate();
49 }
50 return new CachedBuffer(new byte[size]);
51 }
52 }
static Queue< CachedBuffer > LargeBufferQueue
Definition BufferPool.cs:20
static Queue< CachedBuffer > SmallBufferQueue
Definition BufferPool.cs:16
static Queue< CachedBuffer > MediumBufferQueue
Definition BufferPool.cs:18

References Terraria.DataStructures.BufferPool.bufferLock, Terraria.DataStructures.BufferPool.LargeBufferQueue, Terraria.DataStructures.BufferPool.MediumBufferQueue, and Terraria.DataStructures.BufferPool.SmallBufferQueue.

Referenced by Terraria.Net.NetPacket.NetPacket(), and Terraria.DataStructures.BufferPool.Request().