ERR_REMOVE_STATE(3) | Library Functions Manual | ERR_REMOVE_STATE(3)

# NAME

`ERR_remove_thread_state`, `ERR_remove_state` — free a thread's OpenSSL error queue

# SYNOPSIS

library “libcrypto”
`#include <openssl/err.h>`

void
`ERR_remove_thread_state`(const CRYPTO_THREADID *tid);

Deprecated:

void
`ERR_remove_state`(unsigned long pid);

# DESCRIPTION

`ERR_remove_thread_state`() frees the error queue associated with thread tid. If tid is `NULL`, the current thread will have its error queue removed.

Since error queue data structures are allocated automatically for new threads, they must be freed when threads are terminated in order to avoid memory leaks.

`ERR_remove_state`() is deprecated and has been replaced by `ERR_remove_thread_state`(). Since threads in OpenSSL are no longer identified by unsigned long values, any argument to this function is ignored. Calling `ERR_remove_state`() is equivalent to `ERR_remove_thread_state`(NULL).

# SEE ALSO

ERR(3)

# HISTORY

`ERR_remove_state`() first appeared in SSLeay 0.6.1 and has been available since OpenBSD 2.4.

It was deprecated in OpenSSL 1.0.0 and OpenBSD 4.9 when `ERR_remove_thread_state`() was introduced and thread IDs were introduced to identify threads instead of unsigned long.

June 8, 2025 | Debian