Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d1efb15e3f |
@@ -45,8 +45,7 @@ namespace Nitload.Common.HighPerformance.Memory
|
|||||||
if (ReferenceEquals(predictor, _ring[idx]))
|
if (ReferenceEquals(predictor, _ring[idx]))
|
||||||
{
|
{
|
||||||
int end = _predict;
|
int end = _predict;
|
||||||
for (int move = i; move < end - 1; move++)
|
for (int move = i; move < end - 1; move++) {
|
||||||
{
|
|
||||||
_ring[(byte)move] = _ring[(byte)(move + 1)];
|
_ring[(byte)move] = _ring[(byte)(move + 1)];
|
||||||
}
|
}
|
||||||
_ring[(byte)(end - 1)] = default!;
|
_ring[(byte)(end - 1)] = default!;
|
||||||
@@ -58,7 +57,7 @@ namespace Nitload.Common.HighPerformance.Memory
|
|||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
Interlocked.Exchange(ref _queue_sync, 0);
|
_ = Interlocked.Exchange(ref _queue_sync, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,9 +76,18 @@ namespace Nitload.Common.HighPerformance.Memory
|
|||||||
WaitForSpare();
|
WaitForSpare();
|
||||||
|
|
||||||
_consume++;
|
_consume++;
|
||||||
|
try
|
||||||
byte idx = (byte)_consume;
|
{
|
||||||
_ring[idx] = predictor;
|
unchecked
|
||||||
|
{
|
||||||
|
byte idx = (byte)_consume;
|
||||||
|
_ring[idx] = predictor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
_ = Interlocked.Exchange(ref _queue_sync, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void WaitForSpare()
|
private void WaitForSpare()
|
||||||
|
|||||||
@@ -33,5 +33,4 @@ namespace Nitload.Common.HighPerformance.Memory
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class PredictorMonitor { }
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user