Add ERR_remove_thread_state (for Android).
Change-Id: I908d207ccd3d529ec09c687effc2aeb4631127d9
Reviewed-on: https://boringssl-review.googlesource.com/1470
Reviewed-by: David Benjamin <davidben@chromium.org>
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/include/openssl/err.h b/include/openssl/err.h
index ddb094c..8ebd73f 100644
--- a/include/openssl/err.h
+++ b/include/openssl/err.h
@@ -256,6 +256,10 @@
/* ERR_clear_error clears the error queue for the current thread. */
OPENSSL_EXPORT void ERR_clear_error(void);
+/* ERR_remove_thread_state deletes the error queue for the given thread. If
+ * |tid| is NULL then the error queue for the current thread is deleted. */
+OPENSSL_EXPORT void ERR_remove_thread_state(const CRYPTO_THREADID *tid);
+
/* Custom errors. */
@@ -482,6 +486,11 @@
* never returns NULL. */
ERR_STATE *(*get_state)(void);
+ /* release_state returns the |ERR_STATE| for the given thread, or NULL if
+ * none exists. It the return value is not NULL, it also returns ownership of
+ * the |ERR_STATE| and deletes it from its data structures. */
+ ERR_STATE *(*release_state)(const CRYPTO_THREADID *tid);
+
/* get_next_library returns a unique value suitable for passing as the
* |library| to error calls. It will be distinct from all built-in library
* values. */