Thanks a lot! On Tue, Sep 27, 2011 at 4:29 PM, Cedric BAIL <[email protected]> wrote:
> On Tue, Sep 27, 2011 at 8:56 AM, Daniel Juyung Seo <[email protected]> > wrote: > > No more comments on this patch? > > It's good could get in today. > > > If so, I'll commit this in a day. > > I was lacking network access. Now I am back, I can commit and break > stuff again ! Yeah ! > lol ;-) > > > On Thu, Sep 22, 2011 at 10:22 PM, Kim Yunhan <[email protected]> wrote: > >> Of course, the multiplication won't matter at all. :) > >> I couldn't predict how much time will be taken in ecore main loop. > >> There exists similar code in Ecore_Con_Url and if download is stared, it > >> will be called many times. > >> So I guess that it could be affected with download performance. (though > it > >> will be a little) > >> That was my concern. > >> But I thought it again and UI interaction is more important than > download > >> performance. > >> Therefore I'll send a patch again you suggested. > >> > >> Thank you. > >> > >> Index: ecore/src/lib/ecore_con/ecore_con_url.c > >> =================================================================== > >> --- ecore/src/lib/ecore_con/ecore_con_url.c (revision 63527) > >> +++ ecore/src/lib/ecore_con/ecore_con_url.c (working copy) > >> @@ -1357,15 +1357,21 @@ > >> int fd_max, fd; > >> int flags, still_running; > >> int completed_immediately = 0; > >> + double start; > >> CURLMcode ret; > >> > >> _url_con_list = eina_list_append(_url_con_list, url_con); > >> > >> url_con->active = EINA_TRUE; > >> curl_multi_add_handle(_curlm, url_con->curl_easy); > >> - /* This one can't be stopped, or the download never start. */ > >> - while (curl_multi_perform(_curlm, &still_running) == > >> CURLM_CALL_MULTI_PERFORM) ; > >> > >> + start = ecore_time_get(); > >> + while (curl_multi_perform(_curlm, &still_running) == > >> CURLM_CALL_MULTI_PERFORM) > >> + if ((ecore_time_get() - start) > (0.7 * > >> ecore_animator_frametime_get())) > >> + { > >> + break; > >> + } > >> + > >> completed_immediately = > _ecore_con_url_process_completed_jobs(url_con); > >> > >> if (!completed_immediately) > >> @@ -1456,7 +1462,7 @@ > >> start = ecore_time_get(); > >> while (curl_multi_perform(_curlm, &still_running) == > >> CURLM_CALL_MULTI_PERFORM) > >> /* make this not more than a frametime to keep interactivity high > */ > >> - if ((ecore_time_get() - start) > ecore_animator_frametime_get()) > >> + if ((ecore_time_get() - start) > (0.7 * > >> ecore_animator_frametime_get())) > >> { > >> done = 0; > >> break; > >> > >> > >> On Thu, Sep 22, 2011 at 9:33 PM, Gustavo Sverzut Barbieri < > >> [email protected]> wrote: > >> > >>> What will change? The multiplication won't matter and you can move it > >>> outside of the loop. If there is nothing else to be done in the > mainloop it > >>> will do few function calls and get back to work. > >>> > >>> If you allow the full frametime to be used, whenever the user will try > to > >>> do > >>> work the frametime will be gone and skips will happen, even under low > load! > >>> > >>> If someone is considering download speed I strongly recommend doing > >>> splice() > >>> to avoid it coming from kernel to userspace then back to kernel > >>> > >>> Things like servers using ecore don't need frametime at all, thus they > can > >>> make it a few seconds or minutes :-) > >>> > >>> On Thursday, September 22, 2011, Kim Yunhan <[email protected]> wrote: > >>> > It sounds good. But I'm wonder download performance will be impaired. > >>> :'-( > >>> > It should be tested much more. > >>> > > >>> > On Thu, Sep 22, 2011 at 8:13 PM, Gustavo Sverzut Barbieri < > >>> > [email protected]> wrote: > >>> > > >>> >> Better to use a percentual if frametime otherwise user will try to > do > >>> some > >>> >> work and it will not have enough time. Something like 0.7 * > >>> >> ecore_animator_frametime_get() > >>> >> > >>> >> On Thursday, September 22, 2011, Cedric BAIL <[email protected]> > >>> wrote: > >>> >> > On Thu, Sep 22, 2011 at 12:51 AM, Kim Yunhan <[email protected]> > >>> wrote: > >>> >> >> Thank you! > >>> >> >> Ecore_Con_Url already have the solution with > >>> >> _ecore_con_url_idler_handler. > >>> >> >> So I just break the while loop if it takes too long. > >>> >> >> > >>> >> >> > ================================================================== > >>> >> >> --- src/lib/ecore_con/ecore_con_url.c (revision 63520) > >>> >> >> +++ src/lib/ecore_con/ecore_con_url.c (working copy) > >>> >> >> @@ -1357,15 +1357,21 @@ > >>> >> >> int fd_max, fd; > >>> >> >> int flags, still_running; > >>> >> >> int completed_immediately = 0; > >>> >> >> + double start; > >>> >> >> CURLMcode ret; > >>> >> >> > >>> >> >> _url_con_list = eina_list_append(_url_con_list, url_con); > >>> >> >> > >>> >> >> url_con->active = EINA_TRUE; > >>> >> >> curl_multi_add_handle(_curlm, url_con->curl_easy); > >>> >> >> - /* This one can't be stopped, or the download never start. */ > >>> >> >> - while (curl_multi_perform(_curlm, &still_running) == > >>> >> >> CURLM_CALL_MULTI_PERFORM) ; > >>> >> >> > >>> >> >> + start = ecore_time_get(); > >>> >> >> + while (curl_multi_perform(_curlm, &still_running) == > >>> >> >> CURLM_CALL_MULTI_PERFORM) > >>> >> >> + if ((ecore_time_get() - start) > > >>> ecore_animator_frametime_get()) > >>> >> >> + { > >>> >> >> + break; > >>> >> >> + } > >>> >> >> + > >>> >> >> completed_immediately = > >>> >> _ecore_con_url_process_completed_jobs(url_con); > >>> >> >> > >>> >> >> if (!completed_immediately) > >>> >> >> > >>> >> >> > >>> >> >> It works well for me. > >>> >> >> How about this code? > >>> >> >> Please review again. > >>> >> > > >>> >> > Sounds good to me. If nobody apply, I will in a few hours. > >>> >> > > >>> >> > Thanks, > >>> >> > > >>> >> >> Thank you once again. > >>> >> >> > >>> >> >> On Thu, Sep 22, 2011 at 4:46 AM, Cedric BAIL < > [email protected]> > >>> >> wrote: > >>> >> >> > >>> >> >>> On Wed, Sep 21, 2011 at 6:18 PM, Kim Yunhan <[email protected]> > >>> wrote: > >>> >> >>> > Thank you for your advice. > >>> >> >>> > > >>> >> >>> > libcurl already supports asynchronous DNS lookup (including > >>> c-ares). > >>> >> >>> > Ecore_Con_Url is integrated with libcurl. > >>> >> >>> > But I think that code in below blocks asynchronous mechanism > of > >>> >> libcurl. > >>> >> >>> > while (curl_multi_perform(_curlm, &still_running) > >>> >> >>> > == CURLM_CALL_MULTI_PERFORM) ; > >>> >> >>> > > >>> >> >>> > I want to fix it simple. :) > >>> >> >>> > >>> >> >>> Agreed, I didn't look to that code since months or years, but > why do > >>> >> >>> we have a 'while' here ? shouldn't we just go back to the main > loop > >>> >> >>> and be magically called again ? did you try that solution ? if > that > >>> >> >>> work, it would be a much better fix in my opinion. > >>> >> >>> > >>> >> >>> > On Thu, Sep 22, 2011 at 12:48 AM, Nicolas Aguirre < > >>> >> >>> [email protected] > >>> >> >>> >> wrote: > >>> >> >>> > > >>> >> >>> >> 2011/9/21 Kim Yunhan <[email protected]>: > >>> >> >>> >> > Hello! > >>> >> >>> >> > > >>> >> >>> >> > elm_map uses Ecore Con with CURL. > >>> >> > > >>> > >>> > ------------------------------------------------------------------------------ > >>> >> All the data continuously generated in your IT infrastructure > contains a > >>> >> definitive record of customers, application performance, security > >>> >> threats, fraudulent activity and more. Splunk takes this data and > makes > >>> >> sense of it. Business sense. IT sense. Common sense. > >>> >> http://p.sf.net/sfu/splunk-d2dcopy1 > >>> >> _______________________________________________ > >>> >> enlightenment-devel mailing list > >>> >> [email protected] > >>> >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > >>> >> > >>> > > >>> > >>> > ------------------------------------------------------------------------------ > >>> > All the data continuously generated in your IT infrastructure > contains a > >>> > definitive record of customers, application performance, security > >>> > threats, fraudulent activity and more. Splunk takes this data and > makes > >>> > sense of it. Business sense. IT sense. Common sense. > >>> > http://p.sf.net/sfu/splunk-d2dcopy1 > >>> > _______________________________________________ > >>> > enlightenment-devel mailing list > >>> > [email protected] > >>> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > >>> > > >>> > >>> -- > >>> Gustavo Sverzut Barbieri > >>> http://profusion.mobi embedded systems > >>> -------------------------------------- > >>> MSN: [email protected] > >>> Skype: gsbarbieri > >>> Mobile: +55 (19) 9225-2202 > >>> > >>> > ------------------------------------------------------------------------------ > >>> All the data continuously generated in your IT infrastructure contains > a > >>> definitive record of customers, application performance, security > >>> threats, fraudulent activity and more. Splunk takes this data and makes > >>> sense of it. Business sense. IT sense. Common sense. > >>> http://p.sf.net/sfu/splunk-d2dcopy1 > >>> _______________________________________________ > >>> enlightenment-devel mailing list > >>> [email protected] > >>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > >>> > >> > >> > ------------------------------------------------------------------------------ > >> All the data continuously generated in your IT infrastructure contains a > >> definitive record of customers, application performance, security > >> threats, fraudulent activity and more. Splunk takes this data and makes > >> sense of it. Business sense. IT sense. Common sense. > >> http://p.sf.net/sfu/splunk-d2dcopy1 > >> _______________________________________________ > >> enlightenment-devel mailing list > >> [email protected] > >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > >> > >> > > > > > ------------------------------------------------------------------------------ > > All the data continuously generated in your IT infrastructure contains a > > definitive record of customers, application performance, security > > threats, fraudulent activity and more. Splunk takes this data and makes > > sense of it. Business sense. IT sense. Common sense. > > http://p.sf.net/sfu/splunk-d2dcopy1 > > _______________________________________________ > > enlightenment-devel mailing list > > [email protected] > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > > > > > -- > Cedric BAIL > > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure contains a > definitive record of customers, application performance, security > threats, fraudulent activity and more. Splunk takes this data and makes > sense of it. Business sense. IT sense. Common sense. > http://p.sf.net/sfu/splunk-d2dcopy1 > _______________________________________________ > enlightenment-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1 _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
