- From: Raffaele Sena <raff@nuvomedia.com>
- Date: Wed, 15 Dec 1999 16:13:28 -0800
- To: "Sam Couter" <eddie@topic.com.au>, <www-lib@w3.org>
> 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) * > Since there is already a check for HTEndLoop at the beginning of the loop: /* Don't leave this loop until we leave the application */ while (!HTEndLoop) { /* ** Timeval struct copy needed for linux, as it set the value to the ** remaining timeout while exiting the select. (and perhaps for ** other OS). Code borrowed from X server. */ wt = NULL; if ((status = HTTimer_next(&timeout))) break; if (timeout != 0) { waittime.tv_sec = timeout / MILLI_PER_SECOND; waittime.tv_usec = (timeout % MILLI_PER_SECOND) * (1000000 / MILLI_PER_SECOND); wt = &waittime; } ... can you explain me how your change fixes the problem, more that reducing the time before the HTEndLoop is checked ? Just curious. -- Raffaele
Received on Thursday, 16 December 1999 00:17:11 UTC