<div dir="ltr">On 18 December 2015 at 09:49, Dario Minieri <span dir="ltr"><<a href="mailto:paradox@cheapnet.it" target="_blank">paradox@cheapnet.it</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
Thanks Robert for your reply. I'm using OSG3.2.1. I can see Mutex lock/unlock in Node. I've to look the DatabasePager implementation...but I can't understand the crash, because locks there are...</blockquote><div><br></div><div>When doing multi-threading the smallest little mistake can cause problems, you just have to work through eliminating the possibilities, it can be quite tough.<br><br></div><div>As a general note, OSG-3.4.0 contains quite a few week improvements including on the thread safety side so would recommend using it. The OSG-3.5.0 dev release also uses osgDB::readRefNodeFile() etc. internally to avoid potential issues with mixing the osgDB::Registry Object cache. This improvements might not affect your problem but it might be worth trying to upgrade to at least 3.4.0.<br><br></div><div>With your own code I'd recommend changing from using C* pointers to ref_ptr<> an time you are transferring ownership of the OSG objects, in your code example you pop a pointer to a node off a container, both the container and the local pointer should use ref_ptr<> for memory safety.<br><br></div><div>Robert.<br></div><div><br><br></div><div> </div></div></div></div>