aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/Scene.cs (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Implemented a Watchdog class. Do not manually create Thread objects anymore, ↵John Hurliman2009-10-221-10/+10
| | | | use Watchdog.StartThread(). While your thread is running call Watchdog.UpdateThread(). When it is shutting down call Watchdog.RemoveThread(). Most of the threads in OpenSim have been updated
* Merge branch 'master' into vehiclesMelanie2009-10-221-54/+71
|\
| * Merge branch 'master' of ssh://opensimulator.org/var/git/opensim into ↵John Hurliman2009-10-191-2/+2
| |\ | | | | | | | | | prioritization
| * | * Change Util.FireAndForget to use ThreadPool.UnsafeQueueUserWorkItem(). ↵John Hurliman2009-10-191-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This avoids .NET remoting and a managed->unmanaged->managed jump. Overall, a night and day performance difference * Initialize the LLClientView prim full update queue to the number of prims in the scene for a big performance boost * Reordered some comparisons on hot code paths for a minor speed boost * Removed an unnecessary call to the expensive DateTime.Now function (if you *have* to get the current time as opposed to Environment.TickCount, always use DateTime.UtcNow) * Don't fire the queue empty callback for the Resend category * Run the outgoing packet handler thread loop for each client synchronously. It seems like more time was being spent doing the execution asynchronously, and it made deadlocks very difficult to track down * Rewrote some expensive math in LandObject.cs * Optimized EntityManager to only lock on operations that need locking, and use TryGetValue() where possible * Only update the attachment database when an object is attached or detached * Other small misc. performance improvements
| * | * Rewrote the methods that build ObjectUpdate and ImprovedTerseObjectUpdate ↵John Hurliman2009-10-181-24/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | packets to fill in the data more accurately and avoid allocating memory that is immediately thrown away * Changed the Send*Data structs in IClientAPI to use public readonly members instead of private members and getters * Made Parallel.ProcessorCount public * Started switching over packet building methods in LLClientView to use Util.StringToBytes[256/1024]() instead of Utils.StringToBytes() * More cleanup of the ScenePresences vs. ClientManager nightmare * ScenePresence.HandleAgentUpdate() will now time out and drop incoming AgentUpdate packets after three seconds. This fixes a deadlock on m_AgentUpdates that was blocking up the LLUDP server
| * | Committing the second part of Jim Greensky @ Intel Lab's patch, ↵John Hurliman2009-10-171-0/+13
| | | | | | | | | | | | re-prioritizing updates
| * | Merge branch 'master' of ssh://opensimulator.org/var/git/opensim into ↵John Hurliman2009-10-161-0/+11
| |\ \ | | | | | | | | | | | | prioritization
| * | | Updating OpenSim.ini.example with the section required to enable a useful ↵John Hurliman2009-10-161-0/+2
| | | | | | | | | | | | | | | | prioritization scheme
| * | | Object update prioritization by Jim Greensky of Intel Labs, part one. This ↵John Hurliman2009-10-151-8/+32
| | | | | | | | | | | | | | | | implements a simple distance prioritizer based on initial agent positions. Re-prioritizing and more advanced priority algorithms will follow soon
| * | | * Removed some of the redundant broadcast functions in Scene and SceneGraph ↵John Hurliman2009-10-151-22/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | so it is clear who/what the broadcast is going to each time * Removed two redundant parameters from SceneObjectPart * Changed some code in terse update sending that was meant to work with references to work with value types (since Vector3 and Quaternion are structs) * Committing a preview of a new method for sending object updates efficiently (all commented out for now)
* | | | Merge branch 'master' into vehiclesMelanie2009-10-191-2/+13
|\ \ \ \ | | |_|/ | |/| |
| * | | Formatting cleanup.Jeff Ames2009-10-191-2/+2
| | |/ | |/|
| * | * fix previous commitTeravus Ovares (Dan Olivares)2009-10-161-1/+1
| | |
| * | * Ensure that at least 20 frames run before letting avatar in.Teravus Ovares (Dan Olivares)2009-10-161-0/+11
| |/
* | Merge branch 'master' into vehiclesMelanie2009-10-151-1/+1
|\ \ | |/
| * * Replaced (possibly broken?) math for calculating the unix timestamp in ↵John Hurliman2009-10-141-1/+1
| | | | | | | | | | | | | | MySQLAssetData with Utils.DateTimeToUnixTime() * Disabled UpdateAccessTime() function since it was only writing zeros anyways. This gave me a significant performance improvement for startup times and avatar logins in standalone mode * Load attachments asynchronously so avatars with lots of attachments don't have to race the timeout clock to login
* | Merge branch 'master' into vehiclesMelanie2009-10-151-86/+144
|\ \ | |/
| * Merge branch 'master' into htb-throttleMelanie2009-10-141-0/+1
| |\
| | * Setting changeY in border crossing.Diva Canto2009-10-141-0/+1
| | |
| * | Merge branch 'master' into htb-throttleMelanie2009-10-141-21/+93
| |\ \ | | |/
| | * * Fixes some prim crossings on megaregions with regions beyond the 512m markTeravus Ovares (Dan Olivares)2009-10-131-21/+93
| | | | | | | | | | | | * There's a slight chance that this could cause a problem with regular prim crossings.. but hopefully not. Revert if it does.
| * | Optimized heartbeat by calling Update() only on updated objects.Dan Lake2009-10-131-45/+37
| | | | | | | | | | | | | | | | | | | | | | | | During the heartbeat loop, Update() is called on every SceneObjectGroup which in turn checks if any SceneObjectPart has changed. For large regions (> 100k prims) this work consumes 20-30% of a CPU even though there are only a few objects updating each frame. There is only one other reason to check every object on every frame, and that is the case where a script has registered the object with an "at target" listener. We can easily track when an object is registered or unregistered with an AtTarget, so this is not a reason to check every object every heartbeat. In the attached patch, I have added a dictionary to the scene which tracks the objects which have At Targets. Each heartbeat, the AtTarget() function will be called on every object registered with a listener for that event. Also, I added a dictionary to SceneGraph which stores references to objects which have been queued for updates during the heartbeat. At each heartbeat, Update() is called only on the objects which have generated updates during that beat.
| * | * Consolidated adding / removing ClientManager IClientAPIs to two places in ↵John Hurliman2009-10-131-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | Scene * Added some missing implementations of IClientAPI.RemoteEndPoint * Added a ClientManager.Remove(UUID) overload * Removed a reference to a missing project from prebuild.xml
| * | * Rewrote ClientManager to remove Lindenisms from OpenSim core, improve ↵John Hurliman2009-10-131-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | performance by removing locks, and replace LLUDPClientCollection * Removed the confusing (and LL-specific) shutdowncircuit parameter from IClientAPI.Close() * Updated the LLUDP code to only use ClientManager instead of trying to synchronize ClientManager and m_clients * Remove clients asynchronously since it is a very slow operation (including a 2000ms sleep)
| * | * Unregister event handlers in LLUDPServer when a client logs out and ↵John Hurliman2009-10-131-13/+2
| | | | | | | | | | | | | | | | | | | | | | | | disconnects * Move ViewerEffect handling to Scene.PacketHandlers * Removing the unused CloseAllAgents function * Trimming ClientManager down. This class needs to be reworked to keep LLUDP circuit codes from intruding into the abstract OpenSim core code
| * | Merge branch 'master' into htb-throttleMelanie2009-10-121-56/+54
| |\ \ | | |/
| * | Change the backup thread to run on a BackgroundWorker instead of a Thread. I ↵John Hurliman2009-10-091-4/+4
| | | | | | | | | | | | don't have an explanation, but this seems to stop a slow but steady memory leak I was experiencing
* | | Merge branch 'master' into vehiclesMelanie2009-10-121-56/+54
|\ \ \ | | |/ | |/|
| * | Fixed tree crossing. This will alleviateDiva Canto2009-10-111-56/+54
| |/ | | | | | | http://opensimulator.org/mantis/view.php?id=4163
* | Merge branch 'master' into vehiclesMelanie2009-10-081-2/+3
|\ \ | |/
| * Added a debug line for nebadonJohn Hurliman2009-10-061-0/+3
| |
| * Merge branch 'master' of ssh://opensimulator.org/var/git/opensim into ↵John Hurliman2009-10-061-0/+16
| |\ | | | | | | | | | htb-throttle
| * | Fixing a few compile errors in the previous commitJohn Hurliman2009-10-061-2/+0
| | |
* | | Merge branch 'master' into vehiclesMelanie2009-10-061-0/+16
|\ \ \ | | |/ | |/|
| * | Merge branch 'master' of ssh://melanie@opensimulator.org/var/git/opensimMelanie2009-10-061-6/+6
| |\ \
| | * | Commenting the DEBUG code that I added yesterday, because it's causing mono ↵Diva Canto2009-10-061-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | to fail with https://bugzilla.novell.com/show_bug.cgi?id=538854
| * | | Lock the heartbeat against multiple invocations. May prevent deadlocks and/orMelanie2009-10-061-0/+10
| |/ / | | | | | | | | | runaway thread use
| * | Correction on the DEBUG code.Diva Canto2009-10-051-4/+3
| | |
| * | #if DEBBUG code for monitoring the ThreadPool.Diva Canto2009-10-051-0/+7
| |/
* | Merge branch 'master' into vehiclesMelanie2009-10-021-9/+9
|\ \ | |/
| * - cleaning up LandData/ILandObject capitalization issuesdr scofield (aka dirk husemann)2009-10-021-9/+9
| | | | | | | | - adding LandDataSerializer to OAR mechanics
| * Revert "* Adding Scale to EntityBase * Fixing the incorrect initialization ↵Melanie2009-10-021-2/+2
| | | | | | | | | | | | of EntityBase.Rotation * Removed SceneObjectGroup.GroupRotation and added overrides for Scale/Rotation/Velocity" This reverts commit 39842eb4af3b5a8c52d56c0f7f05ad54f0651bb0.
* | Revert "* Adding Scale to EntityBase * Fixing the incorrect initialization ↵Melanie2009-10-021-2/+2
| | | | | | | | | | | | of EntityBase.Rotation * Removed SceneObjectGroup.GroupRotation and added overrides for Scale/Rotation/Velocity" This reverts commit 39842eb4af3b5a8c52d56c0f7f05ad54f0651bb0.
* | Merge branch 'master' into vehiclesMelanie2009-10-011-102/+98
|\ \ | |/
| * Merge branch 'master' of ssh://opensimulator.org/var/git/opensimJohn Hurliman2009-09-301-1/+1
| |\
| | * Formatting cleanup.Jeff Ames2009-10-011-1/+1
| | |
| * | Merge branch 'master' of ssh://opensimulator.org/var/git/opensimJohn Hurliman2009-09-301-99/+95
| |\ \ | | |/
| | * Formatting cleanup.Jeff Ames2009-10-011-4/+4
| | |
| | * A little hack to see if this fixes the problems with ~20% of SOG's becoming ↵Diva Canto2009-09-291-0/+5
| | | | | | | | | | | | phantom after an import to megaregions.
| | * Neighbours cache working.Diva Canto2009-09-271-0/+4
| | |