From: Chris B. <chr...@gm...> - 2007-06-18 12:45:01
|
On 17/06/07, Chris Spencer <chr...@gm...> wrote: > I'm unable to run a small ODE simulation for more than a couple > minutes before ODE crashes with the error: > > ODE INTERNAL ERROR 2: invalid operation for locked space in dGeomMoved() > > Is this caused by ODE's buggy memory management, or is it something > I'm doing? I'm manipulating ODE objects in a separate thread from the > one running the ODE simulation. Could that be causing the error? What > would be the best way to update a simulation from multiple threads > without having to pause the simulation? You probably need to serialise all ODE operations in a single thread. Send messages to that thread to update the ODE objects, and call World.step() from that thread when your message queue is empty. Without examining the source in details it's impossible to tell the effect of changing objects and using objects in parallel. |