Re: Patch to stop some event loop madness

Hi, Sam,
     I am confused here. If HTTimer_next could actually cause
HTEventLoop_stopLoop() to be
called, HTEndLoop turns to 1.  In that case, the loop will stop since
"while" loop condition is broken.
So why do you need to break it at that point?
     The other question is: what causes the infinite loop? In what kind of
scenario? I find libwww
doesn't work on HP and also stuck in this infinite "while" loop because
select( ) always return 0, while
active_sockets == 0, the loop continues.  So I don't understand how these
two lines
resolve the problem.



Regards,
Linda



                                                                                           
                    Sam Couter                                                             
                    <eddie@topic.        To:     www-lib@w3.org                            
                    com.au>              cc:                                               
                    Sent by:             Subject:     Patch to stop some event loop        
                    www-lib-reque        madness                                           
                    st@w3.org                                                              
                                                                                           
                                                                                           
                    12/15/99                                                               
                    03:38 PM                                                               
                                                                                           
                                                                                           




Short patch, to avoid infinite event loop madness when HTTimer_next() calls
callbacks that call HTEventLoop_stopLoop().

If someone with CVS write access could check this in, I'd appreciate it.

diff -u -r2.41 HTEvtLst.c
--- HTEvtLst.c  1999/07/07 15:43:28     2.41
+++ HTEvtLst.c  1999/12/15 23:32:32
@@ -664,6 +664,8 @@
        wt = NULL;
        if ((status = HTTimer_next(&timeout)))
            break;
+       if (HTEndLoop)
+               break;
        if (timeout != 0) {
            waittime.tv_sec = timeout / MILLI_PER_SECOND;
            waittime.tv_usec = (timeout % MILLI_PER_SECOND) *


--
Sam Couter                                             sam@topic.com.au
Internet Engineer
tSA Consulting

Received on Thursday, 16 December 1999 00:17:20 UTC