diff options
author | Jay Satiro <raysatiro@yahoo.com> | 2016-01-04 17:44:39 -0500 |
---|---|---|
committer | Jay Satiro <raysatiro@yahoo.com> | 2016-01-04 17:44:39 -0500 |
commit | 19ca40100bf5ca5ee8511b193bdb1f8e95152664 (patch) | |
tree | 9d003f775d308c8e10c0bd0643bc373f60466a3a /docs | |
parent | b82359643db463fbff063b2d7ebb2e9eb5b33df0 (diff) | |
download | curl-19ca40100bf5ca5ee8511b193bdb1f8e95152664.tar.gz |
curl_global_init.3: Add Windows-specific info for init via DLL
- Add to both curl_global_init.3 and libcurl.3 the caveat for Windows
that initializing libcurl via a DLL's DllMain or static initializer
could cause a deadlock.
Bug: https://github.com/bagder/curl/issues/586
Reported-by: marc-groundctl@users.noreply.github.com
Diffstat (limited to 'docs')
-rw-r--r-- | docs/libcurl/curl_global_init.3 | 4 | ||||
-rw-r--r-- | docs/libcurl/libcurl.3 | 3 |
2 files changed, 7 insertions, 0 deletions
diff --git a/docs/libcurl/curl_global_init.3 b/docs/libcurl/curl_global_init.3 index 77172be67..2e489c1a8 100644 --- a/docs/libcurl/curl_global_init.3 +++ b/docs/libcurl/curl_global_init.3 @@ -50,6 +50,10 @@ This doesn't just mean no other thread that is using libcurl. Because similarly thread unsafe, it could conflict with any other thread that uses these other libraries. +If you are initializing libcurl from a Windows DLL you should not initialize it +from DllMain or a static initializer because Windows holds the loader lock +during that time and it could cause a deadlock. + See the description in \fBlibcurl(3)\fP of global environment requirements for details of how to use this function. diff --git a/docs/libcurl/libcurl.3 b/docs/libcurl/libcurl.3 index 05034c98e..e7709c04d 100644 --- a/docs/libcurl/libcurl.3 +++ b/docs/libcurl/libcurl.3 @@ -194,6 +194,9 @@ object as the program starts up and the destructor as it terminates. As the author of this libcurl-using module, you can make the constructor call \fIcurl_global_init(3)\fP and the destructor call \fIcurl_global_cleanup(3)\fP and satisfy libcurl's requirements without your user having to think about it. +(Caveat: If you are initializing libcurl from a Windows DLL you should not +initialize it from DllMain or a static initializer because Windows holds the +loader lock during that time and it could cause a deadlock.) \fIcurl_global_init(3)\fP has an argument that tells what particular parts of the global constant environment to set up. In order to successfully use any |