From owner-cvs-all Thu Jan 3 3:37:27 2002 Delivered-To: cvs-all@freebsd.org Received: from critter.freebsd.dk (esplanaden.cybercity.dk [212.242.40.114]) by hub.freebsd.org (Postfix) with ESMTP id 2B4CA37B405; Thu, 3 Jan 2002 03:37:22 -0800 (PST) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.11.6/8.11.6) with ESMTP id g03BYsN00953; Thu, 3 Jan 2002 12:34:55 +0100 (CET) (envelope-from phk@critter.freebsd.dk) To: Julian Elischer Cc: Stephen McKay , John Baldwin , cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org, Julian Elischer , Greg Lehey Subject: Re: cvs commit: src/share/man/man3 queue.3 In-Reply-To: Your message of "Thu, 03 Jan 2002 00:46:45 PST." Date: Thu, 03 Jan 2002 12:34:54 +0100 Message-ID: <951.1010057694@critter.freebsd.dk> From: Poul-Henning Kamp Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG In message , 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