aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services/HypergridService/GatekeeperService.cs
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-11-15 20:02:09 +0000
committerJustin Clark-Casey (justincc)2011-11-15 20:02:09 +0000
commite16d7fe1da3432d819f72e8c2af420601009854b (patch)
tree3be42d6810fec53e599f50cd7ea34e870a40af51 /OpenSim/Services/HypergridService/GatekeeperService.cs
parentuse a more efficient dictionary in OdeScene._collisionEventPrim rather than a... (diff)
downloadopensim-SC_OLD-e16d7fe1da3432d819f72e8c2af420601009854b.zip
opensim-SC_OLD-e16d7fe1da3432d819f72e8c2af420601009854b.tar.gz
opensim-SC_OLD-e16d7fe1da3432d819f72e8c2af420601009854b.tar.bz2
opensim-SC_OLD-e16d7fe1da3432d819f72e8c2af420601009854b.tar.xz
Instead of having scene add/remove collision events directly to the OdeScene collision event dictionary, marshall them via a change dictionary first.
This is to avoid a complicated tri-thread deadlock on region crossing for avatars with attachments, where 1) XEngine starting up scripts can lock XEngine.m_Scripts and then try to lock OdeScene._collisionEventPrim while starting up a script due to avatar border crossing 2) An existing collision event will lock OdeScene._collisionEventPrim and then try to lock SP.m_attachments while trying to send the collision event to attachments 3) The avatar still entering the region will lock SP.m_attachments and then try to lock m_Scripts to start more attachment scripts.
Diffstat (limited to 'OpenSim/Services/HypergridService/GatekeeperService.cs')
0 files changed, 0 insertions, 0 deletions