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
This commit is contained in:
Daniel Stenberg 2005-12-23 23:22:23 +00:00
parent d7a2938849
commit 598965a606
2 changed files with 12 additions and 3 deletions

View 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.

View 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) "