Boost logo

Boost :

From: Anthony Williams (anthony_w.geo_at_[hidden])
Date: 2006-11-03 02:59:01


Roland Schwarz <roland.schwarz_at_[hidden]> writes:

> I would be interested in why you think once is superior to statically
> initializeable mutex?
>
> My personal believe is, if we have a clean (static) mutex we should
> prefer it, because it is one concept less the programmer has to
> learn and remeber.
>
> "once" concept was and is just a work-around a deficiency.

"Once" is more low-level. It can be used to initialize a mutex, *or any other
type of object*. Yes, if you have a static mutex, you can lock the mutex
around the initialization of another object, but that's unnecessarily complex:

void f()
{
    static mutex m;
    m.lock();
    static some_class x;
    m.unlock();
    // access x
}

You can't use a scoped_lock for this unless it has an unlock() member (which
IMO defeats the point of it being scoped), since otherwise you end up
serializing the "access x" part too.

Anthony

-- 
Anthony Williams
Software Developer
Just Software Solutions Ltd
http://www.justsoftwaresolutions.co.uk

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk