Skip to content

Commit 38fcf44

Browse files
committed
fix: Fixes overflow pool printing
1 parent 5b227ed commit 38fcf44

File tree

5 files changed

+31
-18
lines changed

5 files changed

+31
-18
lines changed

MLAPI/Serialization/Pooled/BitReaderPool.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,12 @@ public static PooledBitReader GetReader(Stream stream)
2121
{
2222
if (readers.Count == 0)
2323
{
24-
if (createdReaders == 254) if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogWarning("255 readers have been created. Did you forget to dispose?");
25-
else if (createdReaders < 255) createdReaders++;
26-
24+
if (createdReaders == 254)
25+
{
26+
if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogWarning("255 readers have been created. Did you forget to dispose?");
27+
}
28+
else if (createdReaders < 255) createdReaders++;
29+
2730
return new PooledBitReader(stream);
2831
}
2932

@@ -43,4 +46,4 @@ public static void PutBackInPool(PooledBitReader reader)
4346
else if (LogHelper.CurrentLogLevel <= LogLevel.Developer) LogHelper.LogInfo("BitReaderPool already has 64 queued. Throwing to GC. Did you forget to dispose?");
4447
}
4548
}
46-
}
49+
}

MLAPI/Serialization/Pooled/BitStreamPool.cs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,19 @@ public static PooledBitStream GetStream()
2222
if (overflowStreams.Count > 0)
2323
{
2424
if (LogHelper.CurrentLogLevel <= LogLevel.Developer) LogHelper.LogInfo("Retrieving PooledBitStream from overflow pool. Recent burst?");
25-
WeakReference weakStream;
26-
while (!(weakStream = overflowStreams.Dequeue()).IsAlive) ;
25+
WeakReference weakStream = null;
26+
while (overflowStreams.Count > 0 && ((weakStream = overflowStreams.Dequeue()) == null || !weakStream.IsAlive)) ;
2727
if (weakStream.IsAlive) return (PooledBitStream)weakStream.Target;
2828
}
2929

3030
if (streams.Count == 0)
3131
{
32-
if (createdStreams == 254) if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogWarning("255 streams have been created. Did you forget to dispose?");
32+
if (createdStreams == 254)
33+
{
34+
if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogWarning("255 streams have been created. Did you forget to dispose?");
35+
}
3336
else if (createdStreams < 255) createdStreams++;
34-
37+
3538
return new PooledBitStream();
3639
}
3740

@@ -63,4 +66,4 @@ public static void PutBackInPool(PooledBitStream stream)
6366
}
6467
}
6568
}
66-
}
69+
}

MLAPI/Serialization/Pooled/BitWriterPool.cs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,18 @@ public static PooledBitWriter GetWriter(Stream stream)
2121
{
2222
if (writers.Count == 0)
2323
{
24-
if (createdWriters == 254) if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogWarning("255 writers have been created. Did you forget to dispose?");
25-
else if (createdWriters < 255) createdWriters++;
26-
24+
if (createdWriters == 254)
25+
{
26+
if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogWarning("255 writers have been created. Did you forget to dispose?");
27+
}
28+
else if (createdWriters < 255) createdWriters++;
29+
2730
return new PooledBitWriter(stream);
2831
}
2932

3033
PooledBitWriter writer = writers.Dequeue();
3134
writer.SetStream(stream);
32-
35+
3336
return writer;
3437
}
3538

@@ -43,4 +46,4 @@ public static void PutBackInPool(PooledBitWriter writer)
4346
else if (LogHelper.CurrentLogLevel <= LogLevel.Developer) LogHelper.LogInfo("BitWriterPool already has 64 queued. Throwing to GC. Did you forget to dispose?");
4447
}
4548
}
46-
}
49+
}

MLAPI/Serialization/Pooled/PooledBitStream.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ namespace MLAPI.Serialization.Pooled
88
public sealed class PooledBitStream : BitStream, IDisposable
99
{
1010
private bool isDisposed = false;
11+
12+
internal PooledBitStream()
13+
{
14+
}
15+
1116
/// <summary>
1217
/// Gets a PooledBitStream from the static BitStreamPool
1318
/// </summary>
@@ -31,4 +36,4 @@ public static PooledBitStream Get()
3136
}
3237
}
3338
}
34-
}
39+
}

MLAPI/Serialization/Pooled/PooledBitWriter.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,9 @@ namespace MLAPI.Serialization.Pooled
99
public sealed class PooledBitWriter : BitWriter, IDisposable
1010
{
1111
private bool isDisposed = false;
12-
12+
1313
internal PooledBitWriter(Stream stream) : base(stream)
1414
{
15-
1615
}
1716

1817
/// <summary>
@@ -38,4 +37,4 @@ public void Dispose()
3837
}
3938
}
4039
}
41-
}
40+
}

0 commit comments

Comments
 (0)