From 598965a6061e7c6d6adadf104c84bc7cd6cdeb07 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Fri, 23 Dec 2005 23:22:23 +0000 Subject: clarified that curl_global_init() isn't thread-safe and that it might affect curl_easy_init() if you don't call curl_global_init() explicitly in your app --- docs/libcurl/curl_easy_init.3 | 6 ++++++ docs/libcurl/curl_global_init.3 | 9 ++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/docs/libcurl/curl_easy_init.3 b/docs/libcurl/curl_easy_init.3 index 62a6fbc50..a9fbe792a 100644 --- a/docs/libcurl/curl_easy_init.3 +++ b/docs/libcurl/curl_easy_init.3 @@ -14,6 +14,12 @@ handle that you must use as input to other easy-functions. curl_easy_init initializes curl and this call \fBMUST\fP have a corresponding call to \fIcurl_easy_cleanup(3)\fP when the operation is complete. +If you did not already call \fIcurl_global_init(3)\fP, it will be done +automatically with a default setup when you call \fIcurl_easy_init(3)\fP. +This may be lethal in multi-threaded cases, since \fIcurl_global_init(3)\fP is +not thread-safe and must not be called more than once (or from more than one +thread). You are strongly adviced to not rely on this automatic behaviour, but +call \fIcurl_global_init(3)\fP yourself properly. .SH RETURN VALUE If this function returns NULL, something went wrong and you cannot use the other curl functions. diff --git a/docs/libcurl/curl_global_init.3 b/docs/libcurl/curl_global_init.3 index b408850ad..8e8ec09f4 100644 --- a/docs/libcurl/curl_global_init.3 +++ b/docs/libcurl/curl_global_init.3 @@ -15,7 +15,8 @@ This function should only be called once (no matter how many threads or libcurl sessions that'll be used) by every application that uses libcurl. If this function hasn't been invoked when \fIcurl_easy_init(3)\fP is called, -it will be done automatically by libcurl. +it will be done automatically by libcurl. It is adviced that you do not rely +on this automatic call, but instead call \fIcurl_global_init(3)\fP properly. The flags option is a bit pattern that tells libcurl exact what features to init, as described below. Set the desired bits by ORing the values together. @@ -23,8 +24,9 @@ init, as described below. Set the desired bits by ORing the values together. You must however \fBalways\fP use the \fIcurl_global_cleanup(3)\fP function, as that cannot be called automatically for you by libcurl. -Calling this function more than once will cause unpredictable results. - +Calling this function more than once will cause unpredictable results. If that +is not enough, calling this function from more than one thread may also cause +unpredictable results. .SH FLAGS .TP 5 .B CURL_GLOBAL_ALL @@ -44,3 +46,4 @@ other curl functions. .SH "SEE ALSO" .BR curl_global_init_mem "(3), " .BR curl_global_cleanup "(3), " +.BR curl_easy_init "(3) " \ No newline at end of file -- cgit v1.2.3