Example #1
0
 public static void Dispose(ref AtomicSafetyHandle safety, ref DisposeSentinel sentinel)
 {
     AtomicSafetyHandle.CheckDeallocateAndThrow(safety);
     // If the safety handle is for a temp allocation, create a new safety handle for this instance which can be marked as invalid
     // Setting it to new AtomicSafetyHandle is not enough since the handle needs a valid node pointer in order to give the correct errors
     if (AtomicSafetyHandle.IsTempMemoryHandle(safety))
     {
         safety = AtomicSafetyHandle.Create();
     }
     AtomicSafetyHandle.Release(safety);
     Clear(ref sentinel);
 }
Example #2
0
        public static void Dispose(ref AtomicSafetyHandle safety, ref DisposeSentinel sentinel)
        {
            AtomicSafetyHandle.CheckDeallocateAndThrow(safety);
            bool flag = AtomicSafetyHandle.IsTempMemoryHandle(safety);

            if (flag)
            {
                int staticSafetyId = safety.staticSafetyId;
                safety = AtomicSafetyHandle.Create();
                safety.staticSafetyId = staticSafetyId;
            }
            AtomicSafetyHandle.Release(safety);
            DisposeSentinel.Clear(ref sentinel);
        }
 public static void Dispose(AtomicSafetyHandle safety, ref DisposeSentinel sentinel)
 {
     AtomicSafetyHandle.CheckDeallocateAndThrow(safety);
     AtomicSafetyHandle.Release(safety);
     DisposeSentinel.Clear(ref sentinel);
 }