Date: Thu, 03 Jan 2002 12:34:54 +0100 From: Poul-Henning Kamp <phk@critter.freebsd.dk> To: Julian Elischer <julian@elischer.org> Cc: Stephen McKay <mckay@thehub.com.au>, John Baldwin <jhb@FreeBSD.org>, cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org, Julian Elischer <julian@FreeBSD.org>, Greg Lehey <grog@FreeBSD.org> Subject: Re: cvs commit: src/share/man/man3 queue.3 Message-ID: <951.1010057694@critter.freebsd.dk> In-Reply-To: Your message of "Thu, 03 Jan 2002 00:46:45 PST." <Pine.BSF.4.21.0201030044520.22265-100000@InterJet.elischer.org>
next in thread | previous in thread | raw e-mail | index | archive | help
In message <Pine.BSF.4.21.0201030044520.22265-100000@InterJet.elischer.org>, Ju lian Elischer writes: >> >how about explicitly detailing that it's NULL at the end? >> >Doesn't that also work? >> >> I don't think we should document that. >> >> There are types of lists/queues which doesn't naturally end with >> that condition. That is why we have the FOO_EMPTY() clause, although >> people tend to also rely on >> >> if (FOO_FIRST(...) == NULL) >> /* nothing to do */ > >Since TAILQ_FIRST== NULL is a termination (it's empty) >condition (as is TAILQ_NEXT() == NULL) >it makes PERFECT sense that a completed set of iterations ends up >with the pointer being NULL. If for instance we (re)introduce CIRCLEQ or certain other queue types, it is by no means obvious that the continuation clause of the FOREACH() will be "!= NULL". -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?951.1010057694>