On Thu, 20 Dec 2018, Samuel Hurst wrote:

If you're only using curl in a single thread then you're fine to use CURLOPT_NOSIGNAL I think. Unless you need SIGPIPE (filtering) for something else.

Just to clarify, would building easy handles in another thread cause any
issues? I'm only doing the actual processing in one thread, but I'm
calling curl_easy_init and curl_easy_setopt in another and passing it
between them with a queue.

I think that's safe.

Looking through the easy code, it seems that it's inserting a SIGPIPE handler only when you do easy_perform, although I note that there's one in easy_cleanup too, I'm guessing that this is potentially where I'm falling foul of this because my code does the cleanup in the same thread that it builds the easy handle in the first place?

Exactly! That causes a race for which of them that should set/unset the (global) SIGPIPE ignore.

--

 / daniel.haxx.se
-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Reply via email to