Re: not receiving CURLMSG_DONE or other end-of-transfer signals

should we start with the concept of simple interrupts blocking vs

non-blocking calls?



On Tue, Apr 21, 2015 at 5:10 PM, mm.w <0xcafefeed_at_gmail. com> wrote:



> a lot has to be retaken about understanding basics of BSD socket interface

> ; he would less theorize.

>

> On Tue, Apr 21, 2015 at 4:46 PM, Daniel Hardman <daniel.hardman_at_gmail. com>

> wrote:

>

>> >>If asio is only issuing edge-triggered notifications, then libcurl

>> will only see state transitions on sockets, not continuations of the

>> previous state.

>>

>> I've verified that the edge-triggered change in asio is the cause of the

>> hang. In event_cb in asiohiper.cpp, we call curl_multi_socket_action() only

>> once for each state transition. This worked fine when asio was

>> level-triggered. Now, however, we need to call curl_multi_socket_action()

>> repeatedly, until curl tells us that our socket has a new target state.

>>

>> Besides explaining my hang, this probably explains the problem I reported

>> in my other post--the asio sample running very slowly. I'll confirm that as

>> well--and assuming the theory is confirmed after further testing, I'll post

>> a patch.

>>

>> --Daniel

>>

>> -------------------------------------------------------------------

>> List admin: http://cool.haxx.se/list/listinfo/curl-library

>> Etiquette: http://curl.haxx.se/mail/etiquette.html

>>

>

>

