[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Lynx-dev] Re: lynx randomly hanging at "HTTP/1.1 200 OK"

From: Thomas Dickey
Subject: Re: [Lynx-dev] Re: lynx randomly hanging at "HTTP/1.1 200 OK"
Date: Mon, 2 Jan 2006 18:47:04 -0500
User-agent: Mutt/1.3.27i

On Mon, Jan 02, 2006 at 09:09:57PM -0200, Frédéric L. W. Meunier wrote:
> On 1/2/06, Thomas Dickey wrote:
> > If you type "finish", gdb will try to finish the current function.
> > If it's stuck in a loop, it won't come back - and you can control/C
> > back to gdb's prompt.  Doing that twice would normally get back to
> > HTCompressed.
> If I type it, it returns:
> Run till exit from #0  0xb7d01ea3 in random_r () from /lib/tls/
> 0xb7d01d57 in random () from /lib/tls/
> (gdb)

perhaps gdb is being uncooperative (I've noticed that sometimes it reports
that it's in a function when it's in a lower level).  That could be
this chunk:

    while (names_used < MAX_TEMPNAME) {
        counter = (unsigned) (((float) MAX_TEMPNAME * lynx_rand()) /
                              LYNX_RAND_MAX + 1);
        counter %= SIZE_TEMPNAME;       /* just in case... */
         * Avoid reusing a temporary name, since there are places in the code 
         * which can refer to a temporary filename even after it has been 
         * closed and removed from the filesystem. 
        offset = counter / BITS_PER_CHAR;
        mask = 1 << (counter % BITS_PER_CHAR);
        if ((used_tempname[offset] & mask) == 0) {
            used_tempname[offset] |= mask;

and "random()" would be the "lynx_rand()" call.  Typing "finish" again
should make it try to finish fmt_tempname().

If it stays in _that_ loop, there's something wrong with our assumptions
about reusing filenames.  More likely there's a problem in the caller -
but let's see.

Thomas E. Dickey

reply via email to

[Prev in Thread] Current Thread [Next in Thread]