Use GpuPrimeWorkLimiter for GPU lease limiting

This commit is contained in:
Marek Lemańczyk committed 2025-11-02 14:02:15 +01:00
1 parent 00d4e9bde2
commit 1cbe7bf869
5 files changed
+42 -93

No files matched your search

+13 -23
View File
@@ -282,36 +282,26 @@ public sealed class PrimeTester
}
}
internal static PrimeTesterGpuContextLease Rent(int minBufferCapacity = 1)
{
GpuPrimeLeaseLimiter.Enter();
internal static PrimeTesterGpuContextLease Rent(int minBufferCapacity = 1)
{
if (!Pool.TryDequeue(out var lease))
{
lease = new PrimeTesterGpuContextLease(minBufferCapacity);
}
else
{
lease.EnsureCapacity(minBufferCapacity);
}
try
{
if (!Pool.TryDequeue(out var lease))
{
lease = new PrimeTesterGpuContextLease(minBufferCapacity);
}
else
{
lease.EnsureCapacity(minBufferCapacity);
}
lease.ResetReturnFlag();
return lease;
}
lease.ResetReturnFlag();
return lease;
}
catch
{
GpuPrimeLeaseLimiter.Exit();
throw;
}
}
internal static void Return(PrimeTesterGpuContextLease lease)
{
lease.Accelerator.Synchronize();
Pool.Enqueue(lease);
GpuPrimeLeaseLimiter.Exit();
}
internal static void DisposeAll()