public void LowMemory() { if (LowMemoryFlag.Raise()) { _nativeMemoryCleaner.CleanNativeMemory(null); } }
public void LowMemory() { if (!LowMemoryFlag.Raise()) { return; } Interlocked.Increment(ref _generation); while (_globalQueue.TryDequeue(out var result)) { if (result.InUse.Raise()) { result.Dispose(); } } foreach (var coreContext in _perCoreContexts) { for (int i = 0; i < coreContext.Length; i++) { var context = coreContext[i]; if (context != null && context.InUse.Raise()) { context.Dispose(); Interlocked.CompareExchange(ref coreContext[i], null, context); } } } }