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