qemu-stable
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-stable] [PATCH] block/curl: Implement the libcurl timer callba


From: Peter Maydell
Subject: Re: [Qemu-stable] [PATCH] block/curl: Implement the libcurl timer callback interface
Date: Wed, 15 Jan 2014 22:15:23 +0000

On 15 January 2014 22:06, Paolo Bonzini <address@hidden> wrote:
> Il 15/01/2014 18:23, Peter Maydell ha scritto:
>> libcurl versions 7.16.0 and later have a timer callback interface which
>> must be implemented in order for libcurl to make forward progress (it
>> will sometimes rely on being called back on the timeout if there are
>> no file descriptors registered). Implement the callback, and use a
>> QEMU AIO timer to ensure we prod libcurl again when it asks us to.
>>
>> Signed-off-by: Peter Maydell <address@hidden>
>> ---
>> This fixes the problem I was seeing where trying to use the curl block
>> backend just hung. I'm not sure whether all libcurl versions that provide
>> the timer callback API require its use, but it shouldn't hurt.
>
> It still hangs here, but the adding the following patch on top fixes
> curl on Fedora for me!

Hrm. I wonder why I didn't need to do this bit...

> +    curl_multi_socket_action(s->multi, CURL_SOCKET_TIMEOUT, 0, &running);

The libcurl docs say "This function was added in libcurl 7.15.4, and
 is deemed stable since 7.16.0. " So if we want to keep supporting
pre-7.16 libcurl then we need to retain the multi_socket_all codepath.

On the other hand 7.16 was released in October 2006. What's
the oldest version we actually care about?

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]