Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2003-12-16 09:18:17

Michael Glassford wrote:
> One other potential problem that needs to be addressed in the same
> section of code: if the "called once" function throws an exception,
> should the flag indicating that it has been called be set or not? If the
> flag is set, the function will not be called again even though it
> failed; on the other hand, if the flag is is not set, the function may
> continue to be called and continue to throw an exception. What does
> the pthread implementation do in this case?

Pthreads don't need to deal with exceptions, but in:

void f()
    static X x;

if X::X() throws, the initialization will be attempted again when f() is
entered for a second time. call_once should do the same, i.e. not set the
flag on exception.

Boost list run by bdawes at, gregod at, cpdaniel at, john at