1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-15 21:19:57 +00:00
openmw-tes3mp/apps/openmw/mwphysics
fredzio 9bc687e209 Avoid a rare but possible deadlock around mCollisionWorldMutex.
What happened is that the last handle to an Actor shared_ptr was a
promoted weak_ptr. When the shared_ptr goes out of scope, the Actor dtor
is invoked. That involves removing the Actor collision object after
exclusively locking mCollisionWorldMutex. In this case, the lock was
already held in the outter scope of the promoted weak_ptr.

Reduce the scope of the mCollisionWorldMutex to never encompass the
lifetime of a promoted weak_ptr.
2021-01-09 21:10:29 +01:00
..
actor.cpp values for this higher than sGroundOffset cause jittering on some surface; use safe-seeming value slightly less than sGroundOffset 2020-12-27 22:16:11 +00:00
actor.hpp values for this higher than sGroundOffset cause jittering on some surface; use safe-seeming value slightly less than sGroundOffset 2020-12-27 22:16:11 +00:00
closestnotmeconvexresultcallback.cpp Fix GCC build warnings 2020-12-28 12:06:41 +04:00
closestnotmeconvexresultcallback.hpp values for this higher than sGroundOffset cause jittering on some surface; use safe-seeming value slightly less than sGroundOffset 2020-12-27 22:16:11 +00:00
closestnotmerayresultcallback.cpp Avoid dynamic_cast when possible. 2020-12-18 23:47:01 +01:00
closestnotmerayresultcallback.hpp Projectile to projectile collision 2020-12-08 09:06:34 +01:00
collisiontype.hpp Use a separate collision type for doors (Fixes #1962) 2015-12-18 18:32:42 +01:00
constants.hpp values for this higher than sGroundOffset cause jittering on some surface; use safe-seeming value slightly less than sGroundOffset 2020-12-27 22:16:11 +00:00
contacttestresultcallback.cpp Do not block a door when it turns away. 2020-11-01 23:01:18 +01:00
contacttestresultcallback.hpp Do not block a door when it turns away. 2020-11-01 23:01:18 +01:00
contacttestwrapper.cpp values for this higher than sGroundOffset cause jittering on some surface; use safe-seeming value slightly less than sGroundOffset 2020-12-27 22:16:11 +00:00
contacttestwrapper.h values for this higher than sGroundOffset cause jittering on some surface; use safe-seeming value slightly less than sGroundOffset 2020-12-27 22:16:11 +00:00
deepestnotmecontacttestresultcallback.cpp Visualize hand to hand hits 2020-10-26 13:48:15 +01:00
deepestnotmecontacttestresultcallback.hpp Visualize hand to hand hits 2020-10-26 13:48:15 +01:00
hasspherecollisioncallback.hpp components/compiler cleanup; also cleaned up related cascading warnings; fixed up final/override issues 2020-10-22 23:57:53 +02:00
heightfield.cpp Support bullet with double precision 2020-05-13 19:24:28 +02:00
heightfield.hpp Support bullet with double precision 2020-05-13 19:24:28 +02:00
movementsolver.cpp Fix GCC build warnings 2020-12-28 12:06:41 +04:00
movementsolver.hpp values for this higher than sGroundOffset cause jittering on some surface; use safe-seeming value slightly less than sGroundOffset 2020-12-27 22:16:11 +00:00
mtphysics.cpp Avoid a rare but possible deadlock around mCollisionWorldMutex. 2021-01-09 21:10:29 +01:00
mtphysics.hpp Move stats update into their own function. 2020-12-18 21:18:04 +01:00
object.cpp Generate physics collisions for projectiles (bug #3372) 2020-12-08 09:05:38 +01:00
object.hpp Process movement queue in one or several background threads 2020-10-15 06:41:35 +02:00
physicssystem.cpp call moveObject() after applying waterwalking 2020-12-27 17:31:55 +01:00
physicssystem.hpp Fix paralyze for swimming actors 2020-12-22 08:03:51 +03:00
projectile.cpp Don't allow projectiles to stand still when they hit an ally. 2020-12-14 22:23:01 +01:00
projectile.hpp Don't allow projectiles to stand still when they hit an ally. 2020-12-14 22:23:01 +01:00
ptrholder.hpp Don't cache Ptr, it can be updated while the simulation is running. 2020-12-18 22:22:37 +01:00
raycasting.hpp values for this higher than sGroundOffset cause jittering on some surface; use safe-seeming value slightly less than sGroundOffset 2020-12-27 22:16:11 +00:00
stepper.cpp values for this higher than sGroundOffset cause jittering on some surface; use safe-seeming value slightly less than sGroundOffset 2020-12-27 22:16:11 +00:00
stepper.hpp values for this higher than sGroundOffset cause jittering on some surface; use safe-seeming value slightly less than sGroundOffset 2020-12-27 22:16:11 +00:00
trace.cpp values for this higher than sGroundOffset cause jittering on some surface; use safe-seeming value slightly less than sGroundOffset 2020-12-27 22:16:11 +00:00
trace.h Use tracer hit height to skip stepping up in movement solver. 2016-12-24 23:07:44 +01:00