Jason,

That is what I was going to say as well. I've been bitten by the smart
pointer/ref_ptr issue more times than I care to admit...;^)

Glad you got it figured out...
-Shayne

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Jason
Beverage
Sent: Monday, March 23, 2009 11:01 AM
To: OpenSceneGraph Users
Subject: Re: [osg-users] Safely loading paged databases at runtime

Hi Robert,

Ha, I was just getting ready to reply to you saying I've found the issue:)

That was exactly it, switching over to using using a ref_ptr within the
ReaderWriterOSGEarth plugin for the cached TileBuilder objects seems to have
fixed my issue.

Thanks!

Jason


2009/3/23 Robert Osfield <[email protected]>


        Hi Jason,
        
        Normally the DatabasePager works on loaded scene graph that are
entirely independent from the main scene graph and these subgraphs are only
merged with the main scene graph when the main frame loop calls the update
on the DatabasePager to merge any new tiles, remove expired ones.  The
update is down thread safe, with locking happening for all the appropriate
places.  If the place that the node is being attached is already unref'd
from the scene graph then the subgraph should just be safely discarded.
        
        In the case of osgEarth do you have a pointers to global/parental
structures in the plugins that would break the normal scene graph
encapsulation that the database normally has?  If there is such a reference
then it might be best to take a reference to this global/parent strucutre
during the running of the plugin to prevent it going out of scope before the
end of the call to the plugin.
        
        Robert.
        
        
        2009/3/23 Jason Beverage <[email protected]>
        

                Hi Robert,
                
                I've been working with loading and unloading different
osgEarth files at runtime (such as from a File | Open menu) using OSG and
have found that I need to take special care to make sure that the
DatabasePager is not working on a loaded node before removing it and
replacing it with a different scene.  This isn't a big deal and essentially
consists of telling the database pager to not accept any new requests,
clearing any pending requests and waiting for the pager to complete by
checking the getRequestsInProgress.
                
                I've found that if I simply replace the main earth file's
node with a new one while the DatabasePager is working, my application will
crash.  Is this the intended behavior or have I found a potential issue?
                
                Thanks!
                
                Jason
                
                
                _______________________________________________
                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
        
        


Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to