Subject: Re: packet capturing
To: None <tech-kern@NetBSD.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: tech-kern
Date: 01/21/2004 20:06:27
>> Actually, a "once" construct would do the trick nicely.
> Are we seriously suggesting C constructs for the kernel? Does GCC 3
> already have this, or do you have reason to think the GCC maintainers
> buy it back?
C may not have it, but gcc has it already, assuming concurrency issues
can be ignored:
#define ONCE if (({ static int x = 0; int y; y=x; x=1; !y; }))
then
ONCE {
....
}
(Well, you may want less-likely-to-clash names than x or y, but aside
from that it should work. You can use while instead of if if you're
concerned about dangling elses.)
/~\ The ASCII der Mouse
\ / Ribbon Campaign
X Against HTML mouse@rodents.montreal.qc.ca
/ \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B