struct in Unity.Collections.LowLevel.Unsafe
/
Implemented in:UnityEngine.CoreModule
Coordinate safe access to native container memory inside the job system.
AtomicSafetyHandle
holds a reference to the central information that the safety system stores for a given native container. When a job contains a NativeContainer
instance, the job
system automatically configures the flags in AtomicSafetyHandle
to reflect the way that the native container can be used in that job. Each job has a separate AtomicSafetyHandle
instance for a given native
container.
Use this class when you implement a custom NativeContainer
type. Every NativeContainer
instance must contain an AtomicSafetyHandle
field named m_Safety
.
For a conceptual overview of AtomicSafetyHandle and the role it plays in the job system, refer to Implement a custom native container.
CheckDeallocateAndThrow | Check if an AtomicSafetyHandle can be deallocated. |
CheckExistsAndThrow | Check if an AtomicSafetyHandle is valid. |
CheckGetSecondaryDataPointerAndThrow | Check whether it's safe to create a memory-aliasing view to a native container. |
CheckReadAndThrow | Check whether the referenced native container can be read from. |
CheckWriteAndBumpSecondaryVersion | Check whether the referenced native container can be written to and increment the secondary version number if so. |
CheckWriteAndThrow | Check whether the referenced native container can be written to. |
Create | Creates a new AtomicSafetyHandle. |
EnforceAllBufferJobsHaveCompleted | Waits for all jobs running against the AtomicSafetyHandle to complete. |
EnforceAllBufferJobsHaveCompletedAndDisableReadWrite | Waits for all jobs running against an AtomicSafetyHandle to complete and then disables the read and write access on the AtomicSafetyHandle. |
EnforceAllBufferJobsHaveCompletedAndRelease | Waits for all jobs running against an AtomicSafetyHandle to complete and then releases the AtomicSafetyHandle. |
GetAllowReadOrWriteAccess | Checks if the AtomicSafetyHandle is configured to allow reading or writing. |
GetNestedContainer | Checks whether an AtomicSafetyHandle represents a nested container. |
GetReaderArray | Fetches the job handles of all jobs that read from an AtomicSafetyHandle. |
GetReaderName | Gets the name of a specified job that reads from an AtomicSafetyHandle. |
GetTempMemoryHandle | Gets an AtomicSafetyHandle for the temporary memory allocations in a temporary memory scope. |
GetTempUnsafePtrSliceHandle | Gets a single shared AtomicSafetyHandle. |
GetWriter | Gets any writers on an AtomicSafetyHandle. |
GetWriterName | Gets the debug name of the current writer on an AtomicSafetyHandle. |
IsDefaultValue | Checks if an AtomicSafetyHandle has its default value. |
IsHandleValid | Checks if an AtomicSafetyHandle is valid. |
IsTempMemoryHandle | Checks if an AtomicSafetyHandle is the temporary memory safety handle for the active temporary memory scope. |
IsValidNonDefaultHandle | Checks if an AtomicSafetyHandle has been initialized and is valid. |
NewStaticSafetyId | Allocates a new static safety ID to store information for the provided type. |
PrepareUndisposable | Marks an AtomicSafetyHandle so that it can't be disposed of. |
Release | Releases a previously created AtomicSafetyHandle. |
SetAllowReadOrWriteAccess | Sets the read or write access on an AtomicSafetyHandle. |
SetAllowSecondaryVersionWriting | Sets whether other AtomicSafetyHandles that use a secondary version number can write to the NativeContainer protected by a given AtomicSafetyHandle. |
SetBumpSecondaryVersionOnScheduleWrite | Sets whether to automatically bump the secondary version when scheduling a job that has write access to the AtomicSafetyHandle. |
SetCustomErrorMessage | Provides a custom error message for a specific job debugger error type, in cases where additional context can be provided. |
SetNestedContainer | Sets the nested container flag on an AtomicSafetyHandle. |
SetStaticSafetyId | Assigns a provided static safety ID to an AtomicSafetyHandle. |
UseSecondaryVersion | Switches the AtomicSafetyHandle to the secondary version number. |
ValidateNonDefaultHandle | Checks that the handle has been initialized, and if so, checks that it is still valid. |