# Release(AtomicSafetyHandle)

> Releases a previously created AtomicSafetyHandle.

## Definition

* **Type:** Method
* **Namespace:** [Unity.Collections.LowLevel.Unsafe](/engine/6000.3/script-reference/unity/collections/lowlevel/unsafe.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public static void Release(AtomicSafetyHandle handle)
```

### Parameters

**** (\[AtomicSafetyHandle]\(/engine/6000.3/script-reference/unity/collections/lowlevel/unsafe/atomicsafetyhandle)): The AtomicSafetyHandle to release.

### Remarks

After this call, this AtomicSafetyHandle and copies of it are no longer valid. [AtomicSafetyHandle.IsHandleValid](/engine/6000.3/script-reference/unity/collections/lowlevel/unsafe/atomicsafetyhandle/ishandlevalid.md) returns false.

You must call [AtomicSafetyHandle.CheckDeallocateAndThrow](/engine/6000.3/script-reference/unity/collections/lowlevel/unsafe/atomicsafetyhandle/checkdeallocateandthrow.md) before calling Release. Don't call this method for the handle returned by [AtomicSafetyHandle.GetTempMemoryHandle](/engine/6000.3/script-reference/unity/collections/lowlevel/unsafe/atomicsafetyhandle/gettempmemoryhandle.md) or [AtomicSafetyHandle.GetTempUnsafePtrSliceHandle](/engine/6000.3/script-reference/unity/collections/lowlevel/unsafe/atomicsafetyhandle/gettempunsafeptrslicehandle.md), because the lifetime of those handles is automatically managed by the engine.
