all works ok now. -Nick
On Mon, Feb 22, 2010 at 10:39 AM, Robert Osfield <[email protected]>wrote: > HI Nick, > > Thanks for spotting this bug. Your fix wasn't actually thread safe, > what was missing was the assignment of the _ptr after the > ObserverMutex was acquired. the code should have been: > > observer_ptr(const observer_ptr& rp) > { > OpenThreads::ScopedLock<OpenThreads::Mutex> > lock(*getObserverMutex()); > _ptr = rp._ptr; > if (_ptr) _ptr->addObserver(this); > } > > I've just checked this in. Could you check that this works with osgWidget. > > Cheers, > Robert. > > > On Mon, Feb 22, 2010 at 8:23 AM, Trajce (Nick) Nikolov > <[email protected]> wrote: > > Hi Robert, > > here is a fix for osgWidget (and some other I believe) > > I changed > > observer_ptr(const observer_ptr& rp): _ptr(0L) > > to > > observer_ptr(const observer_ptr& rp): _ptr(rp._ptr) > > Cheers, > > -Nick > > > > _______________________________________________ > > osg-submissions mailing list > > [email protected] > > > http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org > > > > > _______________________________________________ > osg-submissions mailing list > [email protected] > > http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org >
_______________________________________________ osg-submissions mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
