]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Document OSSL_get_thread_support_flags()
authorHugo Landau <hlandau@openssl.org>
Wed, 30 Aug 2023 12:19:40 +0000 (13:19 +0100)
committerHugo Landau <hlandau@openssl.org>
Fri, 1 Sep 2023 13:02:50 +0000 (14:02 +0100)
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21905)

doc/man3/CRYPTO_THREAD_run_once.pod
util/other.syms

index 1badd193978f5f4fb408ce7c8693d421a356991f..b6ca5f1fafad269938a66a368f140d33fea4e837 100644 (file)
@@ -8,7 +8,8 @@ CRYPTO_THREAD_unlock, CRYPTO_THREAD_lock_free,
 CRYPTO_atomic_add, CRYPTO_atomic_or, CRYPTO_atomic_load,
 CRYPTO_atomic_load_int,
 OSSL_set_max_threads, OSSL_get_max_threads,
-OSSL_get_thread_support_flags - OpenSSL thread support
+OSSL_get_thread_support_flags, OSSL_THREAD_SUPPORT_FLAG_THREAD_POOL,
+OSSL_THREAD_SUPPORT_FLAG_DEFAULT_SPAWN - OpenSSL thread support
 
 =head1 SYNOPSIS
 
@@ -33,6 +34,9 @@ OSSL_get_thread_support_flags - OpenSSL thread support
  uint64_t OSSL_get_max_threads(OSSL_LIB_CTX *ctx);
  uint32_t OSSL_get_thread_support_flags(void);
 
+ #define OSSL_THREAD_SUPPORT_FLAG_THREAD_POOL
+ #define OSSL_THREAD_SUPPORT_FLAG_DEFAULT_SPAWN
+
 =head1 DESCRIPTION
 
 OpenSSL can be safely used in multi-threaded applications provided that
@@ -121,6 +125,17 @@ spawned unless (and until) there is demand. Thread polling is disabled by
 default. To enable threading you must call OSSL_set_max_threads() explicitly.
 Under no circumstances is this done for you.
 
+=item *
+
+OSSL_get_thread_support_flags() determines what thread pool functionality
+OpenSSL is compiled with and is able to support in the current run time
+environment. B<OSSL_THREAD_SUPPORT_FLAG_THREAD_POOL> indicates that the base
+thread pool functionality is available, and
+B<OSSL_THREAD_SUPPORT_FLAG_DEFAULT_SPAWN> indicates that the default thread pool
+model is available. The default thread pool model is currently the only model
+available, therefore both of these flags must be set for thread pool
+functionality to be used.
+
 =back
 
 =head1 RETURN VALUES
@@ -140,6 +155,9 @@ OSSL_get_max_threads() returns the maximum number of threads currently allowed
 to be used by the thread pool. If thread pooling is disabled or not available,
 returns 0.
 
+OSSL_get_thread_support_flags() returns zero or more B<OSSL_THREAD_SUPPORT_FLAG>
+values.
+
 The other functions return 1 on success, or 0 on error.
 
 =head1 NOTES
index 4bac4afeaadb0354a8658c36325bde8a1b0b1523..b65e4d97167b02a4af456146a3dc5a22de5cda1a 100644 (file)
@@ -697,6 +697,8 @@ OSSL_TRACE_CANCEL                       define
 OSSL_TRACE1                             define
 OSSL_TRACE2                             define
 OSSL_TRACE9                             define
+OSSL_THREAD_SUPPORT_FLAG_THREAD_POOL    define
+OSSL_THREAD_SUPPORT_FLAG_DEFAULT_SPAWN  define
 TS_VERIFY_CTS_set_certs                 define deprecated 3.0.0
 EVP_PKEY_get1_tls_encodedpoint          define deprecated 3.0.0
 EVP_PKEY_set1_tls_encodedpoint          define deprecated 3.0.0