I'll have a crack at it, unless someone else is already doing it. I've got an
environment here that exercises the issue consistently.
Anthony
________________________________
From: Robert Osfield [mailto:[email protected]]
Sent: Tuesday, 17 March 2009 8:22 PM
To: OpenSceneGraph Users
Subject: Re: [osg-users] Multithreading
crashduetoosgDb::Registry::instance()
HI Richard + Paul,
Thanks for explanation. Feel free to dive in an code up such a
solution.
Robert.
On Tue, Mar 17, 2009 at 10:17 AM, Schmidt, Richard
<[email protected]> wrote:
The document is about a design pattern called double locking,
which is especially suitable for singleton objects in multithreaded
environments.
The pattern is essentially this:
static Singleton *instance (void)
{
// First check
if (instance_ == 0)
{
// Ensure serialization (guard
// constructor acquires lock_).
Guard<Mutex> guard (lock_);
// Double check.
if (instance_ == 0)
instance_ = new Singleton;
}
return instance_;
// guard destructor releases lock_.
}
The guard mutex is only accessed in the initialization phase of
the singleton. Once instance_ is set the guard does not need to be queried
anymore.
Richard
_______________________________________
Von: [email protected]
[mailto:[email protected]] Im Auftrag von Robert
Osfield
Gesendet: Dienstag, 17. März 2009 11:07
An: OpenSceneGraph Users
Betreff: Re: [osg-users] Multithreading crash
duetoosgDb::Registry::instance()
2009/3/17 Schmidt, Richard <[email protected]>
http://www.cs.wustl.edu/~schmidt/PDF/DC-Locking.pdf
<http://www.cs.wustl.edu/%7Eschmidt/PDF/DC-Locking.pdf>
Could you explain what the above document is all about...
Robert.
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org