Version: 2023.2
LanguageEnglish
  • C#

AtomicSafetyHandle.SetNestedContainer

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Declaration

public static void SetNestedContainer(Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle handle, bool isNestedContainer);

Parameters

handle Safety handle.
isNestedContainer true if the container protected by this AtomicSafetyHandle should be flagged as nested; false otherwise.

Description

Sets or unsets the nested container flag on an AtomicSafetyHandle.

The Job System does not support nested containers (containers where the individual elements inside the container are themselves containers), because it cannot configure the AtomicSafetyHandle instances stored inside the container's elements independently for each job using the container. This means that attempting to use a nested container in a job will not work correctly.

To protect users from using nested containers in jobs and prevent subtle and hard-to-diagnose errors from arising, a container that detects that it is being used to store containers should set the nested container flag on its AtomicSafetyHandle. This will cause the Job Debugger to throw an explicit error when scheduling a job which tries to use a nested container.

Additional resources: AtomicSafetyHandle.GetNestedContainer.