cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: problem with multi perform

From: Daniel Stenberg <daniel_at_haxx.se>
Date: Mon, 17 Dec 2007 15:23:43 +0100 (CET)

On Mon, 17 Dec 2007, zaheer ahmad wrote:

You seem to have missed my request that we should take this thread to the
curl-library list, so now I've done that "by force" and this is not a reply to
the users list on purpose. Also, you top-post and full-quote in your mail
which is against our netiquette, please don't do that. See
http://curl.haxx.se/mail/etiquette.html

> as part of the curl write call back in curl_multi_perform, we remove one of
> the handles. and this leads to crash when multi_peform tries to access some
> local data (easy->easy_conn->readchannel_use since easy->easy_conn has been
> deleted as part of remove->Curl_done).
>
> So, the question is, is it possible to remove some jobs
> (curl_multi_remove_handle) in the context of curl_multi_perform.
>
> and not wait for the current multi_perform to complete before we remove any
> jobs.

You forgot to tell us what operating system and libcurl version.

But yes, I guess removing a handle from within a callback is not a good idea.
I think that libcurl shouldn't crash because of it though, so it could still
be a good idea to add/change code that makes the remove function just return
gracefully with an error code (at least).

Can you plase provide a small source code that repeats the crash for us to use
to debug/fix this?

-- 
  Commercial curl and libcurl Technical Support: http://haxx.se/curl.html
Received on 2007-12-17