diff options
author | Carlos Martín Nieto <cmn@dwim.me> | 2014-12-12 08:29:43 +0100 |
---|---|---|
committer | Carlos Martín Nieto <cmn@dwim.me> | 2014-12-12 15:46:57 +0100 |
commit | 263b1d6ed97d56608f9a358fa0bfe9e66c968f36 (patch) | |
tree | 1a12b0651cb6b194b8cef8615054c24e0cfbf6a0 /THREADING.md | |
parent | 4eb97ef3bf18403fbce351ae4cac673655d2886a (diff) | |
download | libgit2-263b1d6ed97d56608f9a358fa0bfe9e66c968f36.tar.gz |
Make the OpenSSL locking function warnings more severe
Our git_openssl_set_locking() would ideally not exist. Make it clearer
that we provide it as a last resort and you should prefer anything else.
Diffstat (limited to 'THREADING.md')
-rw-r--r-- | THREADING.md | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/THREADING.md b/THREADING.md index a264567ee..c9bee5184 100644 --- a/THREADING.md +++ b/THREADING.md @@ -54,17 +54,26 @@ it should use. This means that libgit2 cannot know what to set as the user of libgit2 may use OpenSSL independently and the locking settings must survive libgit2 shutting down. -libgit2 does provide a convenience function -`git_openssl_set_locking()` to use the platform-native mutex -mechanisms to perform the locking, which you may rely on if you do not -want to use OpenSSL outside of libgit2, or you know that libgit2 will -outlive the rest of the operations. It is not safe to use OpenSSL -multi-threaded after libgit2's shutdown function has been called. +libgit2 does provide a last-resort convenience function +`git_openssl_set_locking()` (available in `sys/openssl.h`) to use the +platform-native mutex mechanisms to perform the locking, which you may +rely on if you do not want to use OpenSSL outside of libgit2, or you +know that libgit2 will outlive the rest of the operations. It is not +safe to use OpenSSL multi-threaded after libgit2's shutdown function +has been called. + +If your programming language offers a package/bindings for OpenSSL, +you should very strongly prefer to use that in order to set up +locking, as they provide a level of coördination which is impossible +when using this function. See the [OpenSSL documentation](https://www.openssl.org/docs/crypto/threads.html) on threading for more details. +Be also aware that libgit2 may not always link against OpenSSL in the +future if there are alternatives provided by the system. + libssh2 may be linked against OpenSSL or libgcrypt. If it uses OpenSSL, you only need to set up threading for OpenSSL once and the above paragraphs are enough. If it uses libgcrypt, then you need to |