summaryrefslogtreecommitdiffstats
path: root/doc/man7/provider-base.pod
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2020-12-10 17:57:33 +0100
committerMatt Caswell <matt@openssl.org>2021-01-14 18:30:46 +0100
commit886ad0045bf128795049b48f7d7977f72cc7220c (patch)
tree944006518e461d45ba8021e8f61134a66b37a86c /doc/man7/provider-base.pod
parentAdd a test for performing work in multiple concurrent threads (diff)
downloadopenssl-886ad0045bf128795049b48f7d7977f72cc7220c.tar.xz
openssl-886ad0045bf128795049b48f7d7977f72cc7220c.zip
Document the core_thread_start upcall
The core_thread_start upcall previously had a placeholder in the docs. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/13660)
Diffstat (limited to 'doc/man7/provider-base.pod')
-rw-r--r--doc/man7/provider-base.pod11
1 files changed, 10 insertions, 1 deletions
diff --git a/doc/man7/provider-base.pod b/doc/man7/provider-base.pod
index 7e8f5188a5..e2315e7bc4 100644
--- a/doc/man7/provider-base.pod
+++ b/doc/man7/provider-base.pod
@@ -18,8 +18,11 @@ provider-base
/* Functions offered by libcrypto to the providers */
const OSSL_ITEM *core_gettable_params(const OSSL_CORE_HANDLE *handle);
int core_get_params(const OSSL_CORE_HANDLE *handle, OSSL_PARAM params[]);
+
+ typedef void (*OSSL_thread_stop_handler_fn)(void *arg);
int core_thread_start(const OSSL_CORE_HANDLE *handle,
OSSL_thread_stop_handler_fn handfn);
+
OPENSSL_CORE_CTX *core_get_libctx(const OSSL_CORE_HANDLE *handle);
void core_new_error(const OSSL_CORE_HANDLE *handle);
void core_set_error_debug(const OSSL_CORE_HANDLE *handle,
@@ -164,7 +167,13 @@ core_get_params() retrieves parameters from the core for the given I<handle>.
See L</Core parameters> below for a description of currently known
parameters.
-=for comment core_thread_start() TBA
+The core_thread_start() function informs the core that the provider has started
+an interest in the current thread. The core will inform the provider when the
+thread eventually stops. It must be passed the I<handle> for this provider, as
+well as a callback I<handfn> which will be called when the thread stops. The
+callback will subsequently be called from the thread that is stopping and gets
+passed the provider context as an argument. This may be useful to perform thread
+specific clean up such as freeing thread local variables.
core_get_libctx() retrieves the library context in which the library
object for the current provider is stored, accessible through the I<handle>.