Skip site navigation (1)Skip section navigation (2)
Date:      12 May 1998 11:11:57 +1000
From:      Julian Assange <proff@iq.org>
To:        Garance A Drosihn <drosih@rpi.edu>
Cc:        gibbs@FreeBSD.ORG, hackers@FreeBSD.ORG
Subject:   Re: more queue.h brokenness
Message-ID:  <wxu36wb8de.fsf@polysynaptic.iq.org>
In-Reply-To: Garance A Drosihn's message of "Mon, 11 May 1998 20:37:39 -0400"
References:  <v04011708b17d46eba4db@[128.113.24.47]>

next in thread | previous in thread | raw e-mail | index | archive | help
Garance A Drosihn <drosih@rpi.edu> writes:

> At 10:22 PM +0000 5/11/98, Julian Assange wrote:
> > I notice someone (gibbs?) has updated sys/queue.h
>    [skipping]
> > the other queue.h types (where defined) also have this problem.
> >
> > TAILQ_PREV is only used in vm/vm_object.c, which, presumably,
> > is why no-one has noticed the problem before (and why I've
> > cc'd dyson).
> 
> Not sure what you mean by "the other" queue.h types, but I thought
> I'd mention that the newer version of lpr also uses sys/queue.h
> for some things.  It seems to use TAILQ_{ENTRY,HEAD,INIT,REMOVE},
> in case those are among the other types which have the problem...

No, by other types I meant the other queue types, e.g STAILQ/LIST.

The definitions for TAILQ_LAST and TAILQ_PREV have changed; I'm not
sure if these new definitions have fixed the problem or not (the code
path is complex). The symptoms were that after a certain combination
of inserts and removes, TAILQ_PREV on the first element returned the
first member, rather than NULL (meaning a backwards loop through the
TAILQ never ended). When there was only one member left, TAILQ_LAST
returned NULL, rather than the first member.

Cheers,
Julian.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?wxu36wb8de.fsf>