AtomicSafetyHandle is used by the job system to provide validation and full safety.
It becomes available by defining the ENABLE_UNITY_COLLECTIONS_CHECKS symbol.
See Also: the example in NativeContainerAttribute.
| CheckDeallocateAndThrow | Checks if the handle can be deallocated. Throws an exception if it has already been destroyed or a job is currently accessing the data. | 
| CheckExistsAndThrow | Checks if the handle is still valid and throws an exception if it is already destroyed. | 
| CheckGetSecondaryDataPointerAndThrow | CheckGetSecondaryDataPointerAndThrow. | 
| CheckReadAndThrow | Checks if the handle can be read from. Throws an exception if already destroyed or a job is currently writing to the data. | 
| CheckWriteAndBumpSecondaryVersion | Performs CheckWriteAndThrow and then bumps the secondary version. | 
| CheckWriteAndThrow | Checks if the handle can be written to. Throws an exception if already destroyed or a job is currently reading or writing to the data. | 
| Create | Creates a new AtomicSafetyHandle that is valid until AtomicSafetyHandle.Release is called. | 
| EnforceAllBufferJobsHaveCompleted | Waits for all jobs running against this AtomicSafetyHandle to complete. | 
| EnforceAllBufferJobsHaveCompletedAndDisableReadWrite | Waits for all jobs running against this AtomicSafetyHandle to complete and then disables the read and write access on this atomic safety handle. | 
| EnforceAllBufferJobsHaveCompletedAndRelease | Waits for all jobs running against this AtomicSafetyHandle to complete and then releases the atomic safety handle. | 
| GetAllowReadOrWriteAccess | Returns true if the AtomicSafetyHandle is configured to allow reading or writing. | 
| GetReaderArray | Fetch the job handles of all jobs reading from the safety handle. | 
| GetReaderName | Return the name of the specified reading job. | 
| GetTempUnsafePtrSliceHandle | Returns a single shared handle, that can be shared by for example NativeSlice pointing to stack memory. | 
| GetWriter | Return the writer (if any) on an atomic safety handle. | 
| GetWriterName | Return the debug name of the current writer on an atomic safety handle. | 
| PrepareUndisposable | Marks the AtomicSafetyHandle so that it cannot be disposed of. | 
| Release | Releases a previously created AtomicSafetyHandle. | 
| SetAllowReadOrWriteAccess | Lets you prevent read or write access on the atomic safety handle. | 
| SetAllowSecondaryVersionWriting | Switches the AtomicSafetyHandle to the secondary version number. | 
| UseSecondaryVersion | Switches the AtomicSafetyHandle to the secondary version number. |