Testing some singleton implementations
TC
chalucha at gmail.com
Fri Feb 7 02:25:50 PST 2014
On Friday, 31 January 2014 at 08:25:16 UTC, Andrej Mitrovic wrote:
> class LockSingleton
> {
> static LockSingleton get()
> {
> __gshared LockSingleton _instance;
>
> synchronized
> {
> if (_instance is null)
> _instance = new LockSingleton;
> }
>
> return _instance;
> }
>
> private:
> this() { }
> }
Should't be the LockSingleton implemented like this instead?
class LockSingleton
{
static auto get()
{
if (_instance is null)
{
synchronized
{
if (_instance is null)
_instance = new LockSingleton;
}
}
return _instance;
}
private:
this() { }
__gshared LockSingleton _instance;
}
At least this is the way singleton is suggested to implement in
C#, because synchronization is then needed only for initial
instantiation and not allways.
More information about the Digitalmars-d
mailing list