
Andrei Alexandrescu (See Website For Email) wrote:
Gennadiy Rozental wrote:
Author does admit that multithreading issues were not considered. IMO any singleton design that doesn't cover MT couldn't be accepted as generic.
Not every library in Boost is MT safe even when it could be useful. MT was left into next stage.
You could not leave MT for the next stage of singleton design. Singletons have a long history dealing with MT issues topped with DL idiom.
I agree with Gennadiy (in case he's right; I haven't looked at the implementation). A Singleton without careful design for MT is IMHO unacceptable, no matter how carefully designed it is in any other dimension. Singleton is a shared object, and it must address MT issues first and foremost.
FWIW, that's also my opinion. More often than not singletons are accessed by multiple threads. A singleton lib that's not designed for MT is therefore of little help in many applications. I planned to do a (late) review but given that MT wasn't considered in the initial design I'm not too motivated anymore. Also, - as mentioned by other people - what I find a little bothersome is that the library apparently had very little real-world exposure (given the small timeframe from inception to review). Sure, such exposure isn't a requirement but it surely helps to make the library ready for review, i.e. reasonably mature. -- Andreas Huber When replying by private email, please remove the words spam and trap from the address shown in the header.