diff options
author | Justin Clark-Casey (justincc) | 2012-01-25 19:31:50 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-01-25 19:31:50 +0000 |
commit | e20cf3789bc8bbcda86c8e9067fbe8ecdb3046ac (patch) | |
tree | 5a378b0ea1a3c52b7ec16a5be48a2400ee0defc6 /OpenSim/Region/ClientStack | |
parent | Make errors reported by OpenSim when it halts because it can't find certain c... (diff) | |
download | opensim-SC-e20cf3789bc8bbcda86c8e9067fbe8ecdb3046ac.zip opensim-SC-e20cf3789bc8bbcda86c8e9067fbe8ecdb3046ac.tar.gz opensim-SC-e20cf3789bc8bbcda86c8e9067fbe8ecdb3046ac.tar.bz2 opensim-SC-e20cf3789bc8bbcda86c8e9067fbe8ecdb3046ac.tar.xz |
Serialize calls to ODE Collide() function across OdeScene instances to prevent ODE crashes on simulators running more than one region.
It turns out that calls to Collide() are not thread-safe even for objects in different ODE physics worlds due to ODE static caches.
For simulators running multiple regions, not serializing calls from different scene loops will sooner or later cause OpenSim to crash with a native stack trace referencing OBBCollider.
This affects the default OPCODE collider but not GIMPACT. However, GIMPACT fails for other reasons under some current simulator loads.
ODE provides a thread local storage option, but as of ODE r1755 (and r1840) DLLs compiled with this crash OpenSim immediately.
Diffstat (limited to 'OpenSim/Region/ClientStack')
0 files changed, 0 insertions, 0 deletions