Re: [PATCH 1/5] lib: introduce call_once()

From: Andrew Morton
Date: Tue Mar 11 2008 - 15:11:52 EST


On Tue, 11 Mar 2008 11:56:55 -0700
Joe Perches <joe@xxxxxxxxxxx> wrote:

> On Tue, 2008-03-11 at 10:35 -0700, Andrew Morton wrote:
> > #define ONCE() \
> > ({ \
> > static long flag; \
> > \
> > return !test_and_set_bit(0, flag); \
> > })
>
> test_and_set_bit takes an address

duh.

> Perhaps:
>
> #define DO_ONCE(x) \
> ({ static long flag; if (test_and_set_bit(0, &flag)) x; 1; })
>
> DO_ONCE(foo);

No, that's completely unnecessary and would produce nasty-looking code.
Take a look at some of the wait_event monstrosities we have.


I'm not sure that we need any of this once() stuff really.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/