Boost logo

Boost :

From: Martin Bonner (Martin.Bonner_at_[hidden])
Date: 2008-01-18 06:54:52


Gennadiy wrote:
>>>>>> you can't use define based solution for switching MT/non MT.
>>>>>> It should be template parameter. As of now there is no singleton
>>>>>> that can work in presence of threads but without [regard] to
them.
>>>> BOOST_HAS_THREADS is global compile time switch which should have
>>>> no bearings in design on singleton. regardless of this flag I may
>>>> or may not want instance construction to be syncronized.

Tobias wrote:
>>> The design doesn't change based on that macro.

Gennadiy wrote:
>> It does. You either do or don't do syncronization based on it.

Tobias wrote:
> Synchronisation with what? In a program with just one thread it's
> just a no-op.

This has been raised before. I normally write single-threaded code.
Occasionally I am forced to write a worker thread to perform a
particular function. That means that I need BOOST_HAS_THREADS defined.
On the other hand, I /know/ that most of my singletons will only be used
by the main thread, so why do I have to pay for synchronization on those
singletons?

-- 
Martin Bonner

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