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

Akinobu Mita
2008-03-11T12:17:29Z

2008/3/11, Joe Perches <joe@perches.com>:
> On Mon, 2008-03-10 at 23:57 +0900, Akinobu Mita wrote:
> > +++ 2.6-rc/include/linux/once.h
>
> > +struct once_control {
> > + struct mutex lock;
> > + int done;
>
>
> bool?

Yes, this definetly should be bool.

> > +};
> > +
> > +#define __ONCE_INITIALIZER(name) { \
> > + .lock = __MUTEX_INITIALIZER(name.lock), \
> > + .done = 0, \
> > + }
> > +
> > +#define DEFINE_ONCE(name) struct once_control name = __ONCE_INITIALIZER(name)
>
>
> static?

no, static keyword should not be implicitly added in this macro.
DEFINE_ONCE is intended to be anologous to DEFINE_LOCK, DEFINE_WAIT,
and all other similar interfaces in kernel.

> > +
> > +extern int call_once_slow(struct once_control *once_control,
> > + int (*init_rouine)(void));
>
>
> return bool?

call_once() returns error-code when init_routine fails.

> spelling: s/rouine/routine/g

Oops, thanks.