I confirmed that time_t in windows is defined as unsigned, but still I’m 
investigating whether HAVE_TIME_T_UNSIGNED is done in windows or is necessary 
or not in windows 

iPhoneから送信

2018/12/13 16:46、[email protected] via curl-library 
<[email protected]>のメール:

> Could somebody please explain to me what is done in the following loop?
> curl\lib\multi.c
>  do {
>    multi->timetree = Curl_splaygetbest(now, multi->timetree, &t);
>    if(t)
>      /* the removed may have another timeout in queue */
>      (void)add_next_timeout(now, multi, t->payload);
> 
>  } while(t);
> 
> 
> >When you build on a system with unsigned time_t, you MUST also define
> >HAVE_TIME_T_UNSIGNED, did you do that? 
> 
> Thank you for giving me advice.
> I'm looking into that.
> In the meantime, I narrowed down where the loop get stuck when the event 
> ocurred
> 
> curl\lib\multi.c
>  do {
>    multi->timetree = Curl_splaygetbest(now, multi->timetree, &t);
>    if(t)
>      /* the removed may have another timeout in queue */
>      (void)add_next_timeout(now, multi, t->payload);
> 
>  } while(t);
> 
> Lib\spray.c
>  if(compare(i, t->key) < 0) {  <====== never become negative
>    /* even the smallest is too big */
>    *removed = NULL;
>    return t;
>  }
> 
> https://github.com/curl/curl/issues/2004
> The loop happens on systems where time_t is defined to an unsigned type (e.g. 
> QNX). 
> Differences between unsigned types will never become negative.
> 
> Is this also true for windows?
> 
> iPhoneから送信
> 
> 2018/12/11 21:10、Daniel Stenberg <[email protected]>のメール:
> 
>>> On Tue, 11 Dec 2018, "[email protected]" via curl-library wrote:
>>> 
>>> When I call curl_multi_perform, it sometimes does not return while its 
>>> thread uses 100% cpu resources. It happens sometimes, not always. I use 
>>> libcurl 7.59.0 on windows.
>> 
>> I think you need to help out a bit more and provide us with a reproducible 
>> example for us to understand and debug this issue.
>> 
>> While I can't spot any significant change done since 7.59.0 that seems 
>> likely 
>> to have fixed such an issue, I would still urge you to try out the latest 
>> version first before spending a lot of time hunting this down. It might 
>> already be fixed!
>> 
>>> The loop happens on systems where time_t is defined to an unsigned type.
>> 
>> This stood out to me. Isn't Windows always using a signed time_t ?
>> 
>> When you build on a system with unsigned time_t, you MUST also define 
>> HAVE_TIME_T_UNSIGNED, did you do that?
>> 
>> -- 
>> 
>>  / daniel.haxx.se
> -------------------------------------------------------------------
> Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
> Etiquette:   https://curl.haxx.se/mail/etiquette.html
-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Reply via email to