lynx-dev
[Top][All Lists]
Advanced

[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/libc.so.6
> 0xb7d01d57 in random () from /lib/tls/libc.so.6
> (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) {
            names_used++;
            used_tempname[offset] |= mask;
            break;
        }
    }

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
http://invisible-island.net
ftp://invisible-island.net




reply via email to

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