# HLE Release _InterlockedExchangeAdd Functions

Performs an atomic addition of two values and releases pending active HLE transaction. This intrinsic function applies to C/C++ applications for Windows only.

## Syntax

long _InterlockedExchangeAdd_HLERelease(long volatile *Addend, long Value);

__int64 _InterlockedExchangeAdd64_HLERelease(__int64 volatile *Addend, __int64 Value);

## Parameters

`Addend [in, out]` | pointer to the addend which will be replaced with the result of the addition
`Value [in]` | value to be added to the value referenced by the `Addend` parameter

## Description

Performs an atomic addition of two values and releases a pending HLE transaction (if one is active).

## Returns

Returns the initial value referenced by the `Addend` parameter.

Parent topic: Intrinsics for Hardware Lock Elision Operations