From 19ca40100bf5ca5ee8511b193bdb1f8e95152664 Mon Sep 17 00:00:00 2001 From: Jay Satiro Date: Mon, 4 Jan 2016 17:44:39 -0500 Subject: 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 --- docs/libcurl/libcurl.3 | 3 +++ 1 file changed, 3 insertions(+) (limited to 'docs/libcurl/libcurl.3') 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 -- cgit v1.2.3