aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Communications/Cache/AgentAssetTransactions.cs
diff options
context:
space:
mode:
authorMW2008-02-27 14:40:30 +0000
committerMW2008-02-27 14:40:30 +0000
commita9ae5ab8405af5ce80ee060a387683b3044ca7b6 (patch)
treec58549555166f960602025792a3eeca02ea5de78 /OpenSim/Framework/Communications/Cache/AgentAssetTransactions.cs
parentUserService.ClearAgent call is no longer made when a childagent connection is... (diff)
downloadopensim-SC_OLD-a9ae5ab8405af5ce80ee060a387683b3044ca7b6.zip
opensim-SC_OLD-a9ae5ab8405af5ce80ee060a387683b3044ca7b6.tar.gz
opensim-SC_OLD-a9ae5ab8405af5ce80ee060a387683b3044ca7b6.tar.bz2
opensim-SC_OLD-a9ae5ab8405af5ce80ee060a387683b3044ca7b6.tar.xz
Hopefully fixed the bug that was causing a lot of the freezing. Which was happening due to locks in the AssetCache and Texturedownload module. Where the thread from the Asset thread would be take a lock on a list in the asset cache and then try to call the Callback into the texturedownload module and hit a lock in there which was held by a ClientView thread- which at the same time would be trying to request another texture from the cache and be hitting the lock in there held by the IClientAPI. The result each thread waiting for the other one to release a lock. And as one of those was the ClientView process packet thread. No more packets from that client could be processed. For now I've made a copy of the list in AssetCache so that it can release the lock. I'm doing more work on assets (moving the client asset downloading to a module ), so will hopefully change this into a better method once I've cleaned over things up a bit.
Diffstat (limited to 'OpenSim/Framework/Communications/Cache/AgentAssetTransactions.cs')
0 files changed, 0 insertions, 0 deletions