Commit 3b19c7d0 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

CURLOPT_NOSIGNAL might be a MUST to make threaded use work, like on AIX 5.2

due to the use of the static variable for sigsetjmp()
parent 12f5c67b
Loading
Loading
Loading
Loading
+8 −6
Original line number Original line Diff line number Diff line
@@ -5,7 +5,7 @@
.\" *                            | (__| |_| |  _ <| |___
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" *
.\" * Copyright (C) 1998 - 2005, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" * Copyright (C) 1998 - 2006, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
.\" * you should have received as part of this distribution. The terms
@@ -267,11 +267,13 @@ GnuTLS


 http://www.gnu.org/software/gnutls/manual/html_node/Multi_002dthreaded-applications.html
 http://www.gnu.org/software/gnutls/manual/html_node/Multi_002dthreaded-applications.html


When using multiple threads you should set the CURLOPT_NOSIGNAL option to
When using multiple threads you should set the CURLOPT_NOSIGNAL option to TRUE
TRUE for all handles. Everything will work fine except that timeouts are not
for all handles. Everything will or might work fine except that timeouts are
honored during the DNS lookup - which you can work around by building libcurl
not honored during the DNS lookup - which you can work around by building
with c-ares support. c-ares is a library that provides asynchronous name
libcurl with c-ares support. c-ares is a library that provides asynchronous
resolves. Unfortunately, c-ares does not yet support IPv6.
name resolves. Unfortunately, c-ares does not yet fully support IPv6. On some
platforms, libcurl simply will not function properly multi-threaded unless
this option is set.


Also, note that CURLOPT_DNS_USE_GLOBAL_CACHE is not thread-safe.
Also, note that CURLOPT_DNS_USE_GLOBAL_CACHE is not thread-safe.