---
title: release(int)
framework: kernel
role: pseudoSymbol
path: kernel/osobject/1941153-release
---

# release(int)

Releases a reference to an object, freeing it immediately if the reference count drops below the specified threshold.

## Declaration

```occ
virtual void release(
 intfreeWhen) const; 
```

## Parameters

- `freeWhen`: If decrementing the reference count makes it >= freeWhen, the object is immediately freed.

## Overview

Overview If the receiver has freeWhen or fewer references after its reference count is decremented, it is immediately freed. This version of release can be used to break certain retain cycles in object graphs. In general, however, it should be avoided.

## See Also

### Miscellaneous

- [free](kernel/osobject/1941146-free.md)
- [getRetainCount](kernel/osobject/1941147-getretaincount.md)
- [init](kernel/osobject/1941148-init.md)
- [operator delete](kernel/osobject/1941149-operator_delete.md)
- [operator new](kernel/osobject/1941150-operator_new.md)
- [release()](kernel/osobject/1941151-release.md)
- [retain](kernel/osobject/1941154-retain.md)
- [serialize](kernel/osobject/1941155-serialize.md)
- [taggedRelease(const void *)](kernel/osobject/1941156-taggedrelease.md)
- [taggedRelease(const void *, const int)](kernel/osobject/1941157-taggedrelease.md)
- [taggedRetain](kernel/osobject/1941158-taggedretain.md)
