clarified that curl_global_init() isn't thread-safe and that it might affect
authorDaniel Stenberg <daniel@haxx.se>
Fri, 23 Dec 2005 23:22:23 +0000 (23:22 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 23 Dec 2005 23:22:23 +0000 (23:22 +0000)
curl_easy_init() if you don't call curl_global_init() explicitly in your app

docs/libcurl/curl_easy_init.3
docs/libcurl/curl_global_init.3

index 62a6fbc..a9fbe79 100644 (file)
@@ -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.
index b408850..8e8ec09 100644 (file)
@@ -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