Commit Graph

9 Commits (4f00fb265923516596443ff01f3f9b8ed9cbe254)

Author SHA1 Message Date
UbitUmarov dc633ee768 cosmetics 2019-01-29 21:16:28 +00:00
UbitUmarov 950b605b42 more changes on scenegraph etc 2019-01-06 20:10:43 +00:00
UbitUmarov 6e60917522 change its foreach 2019-01-06 02:23:49 +00:00
UbitUmarov 54b4523da8 let DoubleDictionary... also have a values array 2019-01-06 02:10:17 +00:00
UbitUmarov 16f02cb6fd we can't allow abort to change only one dic 2017-05-13 16:34:29 +01:00
UbitUmarov 9ea49d107d fix wrong locking on unused path it case it does get uses. Thanks LaNani Sundara 2017-05-13 15:58:35 +01:00
Melanie Thielker b16abc8166 Massive tab and trailing space cleanup 2017-01-05 19:07:37 +00:00
UbitUmarov ba7904a3a8 a few more changes on potencial mem issues 2016-11-18 00:12:09 +00:00
Justin Clark-Casey (justincc) 0568c76a88 Use a thread abort safe version of OpenMetaverse.DoubleDictionary with the aim of avoiding OpenSimulator problems due to script thread aborts.
When an object is removed, its scripts are stopped and then the thread running them is aborted if stop takes too long.
However, it appears that aborting a thread at just the wrong moment when it is obtaining a ReaderWriterLockSlim lock can leave this lock in an inconsistent state.
One symptom of this is that mono leaps to 100% cpu and a vm thread dump reveals lots of threads waiting for a ReaderWriterLockSlim lock without any thread actually holding it.
This is probably the same problem as encountered originally in commit 12cebb12
This commit looks to plaster this problem by putting lock obtaining methods inside finally blocks which should be uninterruptible by thread aborts.
2012-12-07 00:47:04 +00:00