public static unsafe string GetWriterName(AtomicSafetyHandle handle)
        {
            char *c = AtomicSafetyHandle_GetWriterName(&handle);

            ExceptionReporter.Check();
            return(new string(c));
        }
        public unsafe static EnforceJobResult EnforceAllBufferJobsHaveCompletedAndRelease(AtomicSafetyHandle handle)
        {
            var result = (EnforceJobResult)AtomicSafetyHandle_EnforceAllBufferJobsHaveCompletedAndRelease(&handle);

            ExceptionReporter.Check();
            return(result);
        }
        public static unsafe string GetReaderName(AtomicSafetyHandle handle, int readerIndex)
        {
            char *c = AtomicSafetyHandle_GetReaderName(&handle, readerIndex);

            ExceptionReporter.Check();
            return(new string(c));
        }
 private static unsafe void PatchLocal(ref AtomicSafetyHandle handle)
 {
     fixed(AtomicSafetyHandle *ptr = &handle)
     {
         AtomicSafetyHandle_PatchLocal(ptr);
         ExceptionReporter.Check();
     }
 }
        public unsafe JobHandle GetWriter()
        {
            JobHandle handle = default;

            fixed(AtomicSafetyHandle *ash = &this)
            {
                AtomicSafetyHandle_GetWriter(ash, &handle);
            }

            ExceptionReporter.Check();
            return(handle);
        }
        public unsafe int GetReaderArray(int maxCount, JobHandle *handles)
        {
            int result = 0;

            fixed(AtomicSafetyHandle *ash = &this)
            {
                result = AtomicSafetyHandle_GetReaderArray(ash, maxCount, handles);
            }

            ExceptionReporter.Check();
            return(result);
        }
 public unsafe static void CheckGetSecondaryDataPointerAndThrow(AtomicSafetyHandle handle)
 {
     AtomicSafetyHandle_CheckGetSecondaryDataPointerAndThrow(&handle);
     ExceptionReporter.Check();
 }
 public unsafe static void CheckDisposeAndThrow(AtomicSafetyHandle handle)
 {
     AtomicSafetyHandle_CheckDisposeAndThrow(&handle);
     ExceptionReporter.Check();
 }
 public unsafe static void Release(AtomicSafetyHandle handle)
 {
     AtomicSafetyHandle_Release(&handle);
     ExceptionReporter.Check();
 }