DisposableIpcService.cs 439 B

1234567891011121314151617181920
  1. using System;
  2. using System.Threading;
  3. namespace Ryujinx.HLE.HOS.Services
  4. {
  5. abstract class DisposableIpcService : IpcService, IDisposable
  6. {
  7. private int _disposeState;
  8. protected abstract void Dispose(bool isDisposing);
  9. public void Dispose()
  10. {
  11. if (Interlocked.CompareExchange(ref _disposeState, 1, 0) == 0)
  12. {
  13. Dispose(true);
  14. }
  15. }
  16. }
  17. }