aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim (unfollow)
Commit message (Collapse)AuthorFilesLines
2009-10-27Experimental test to rate limit the incoming packet handler and try to ↵John Hurliman2-0/+29
always leave a worker thread available for other tasks
2009-10-27Removed the DotNetEngine scripting engine. You will need to create a fresh ↵John Hurliman36-5780/+0
checkout or clean out all *DotNet*.dll assemblies from the bin/ directory to run OpenSim moving forward
2009-10-27Lowering the position tolerance of terse updates for ScenePresences to ↵John Hurliman1-1/+1
mitigate some of the rubberbanding issues while we are sending incorrect time dilation values
2009-10-27Making the defaults for interest management variables match whether you have ↵John Hurliman1-3/+3
the [InterestManagement] section in your config or not
2009-10-27Forgot a line in the previous commitJohn Hurliman1-0/+2
2009-10-27Finally hunted down the Parallel deadlock. Packets were being handled ↵John Hurliman1-6/+9
asynchronously (filling up the threadpool with handlers), which would turn around and try to do parallel operations on the starved threadpool. The solution for now is to disable Parallel.cs operations until we can gracefully handle parallel operations with a potentially starved threadpool
2009-10-27* Tweak to region module loading to check for a matching constructor first ↵John Hurliman3-23/+29
instead of throwing and catching exceptions * Commenting out the MySQL startup sequence that cleans out dropped attachments under the advice that it is no longer relevant. If anything, it could be brought back as a database cleanup console command * Updated to the latest libomv 0.8.0-pre. UUID.TryParse() will no longer throw and catch exceptions for most failed UUID parses
2009-10-27* Converts ClientManager.ForEach() (and as a result, Scene.ForEachClient()) ↵John Hurliman4-8/+12
to use a non-blocking parallel method when operating in async mode * Minor code readability cleanup
2009-10-26* Switched from OpenJPEG to CSJ2K in MeshmerizerJohn Hurliman1-3/+1
* Tested the previous patch and found no regressions
2009-10-26Experimental change of PhysicsVector to Vector3. UntestedJohn Hurliman32-878/+866
2009-10-26* Double the priority on avatar bake texture requests to get avatars rezzing ↵John Hurliman3-62/+69
in faster than the surrounding scene * Adds duplicate tracking for SceneObjectParts and ScenePresences to avoid sending out duplicate ImprovedTerseObjectUpdate packets
2009-10-26Removing the ClientManager reference from IScene and hiding it entirely ↵John Hurliman5-21/+30
inside Scene as an implementation detail. This will reduce programming error and make it easier to refactor the avatar vs client vs presence mess later on
2009-10-26* Switched all operations on the list of clients that could be either sync ↵John Hurliman6-28/+37
or async to use Scene.ForEachClient() instead of referencing ClientManager directly * Added a new [Startup] config option called use_async_when_possible to signal how to run operations that could be either sync or async * Changed Scene.ForEachClient to respect use_async_when_possible * Fixing a potential deadlock in Parallel.ForEach by locking on a temporary object instead of the enumerator (which may be shared across multiple invocations on ForEach). Thank you diva
2009-10-26Added calls to GC.AddMemoryPressure() when unmanaged memory is allocated for ↵John Hurliman2-0/+11
ODE (helps the GC make better scheduling choices), and a call to GC.Collect() right before logins are enabled for a region. Although this doesn't change actual memory usage, it improves the reported usage from OpenSim and the operating system
2009-10-26No need to create dupe TriMeshData for ODE. A previous patch created a ↵Dan Lake1-6/+14
dictionary to store unique meshes in Meshmerizer based on creation params. This patch contains a dictionary to map each of those unique meshes to its ODE TriMeshData. This eliminated hundreds of megabytes of memory consumption in the unmanaged heap when there are lots of the same prim (roof tiles, bricks, siding, decks, chairs, etc). The objects do not need to be physical to benefit from this patch.
2009-10-26ParcelObjectOwnersReplyPacket has null DataBlock when a client requests a ↵Dan Lake1-0/+4
list of their prims in the region and none exist. Instead of leaving pack.Data null, this patch sets a new DataBlock[0];
2009-10-26Do case-insensitive comparisons on region names in LLStandaloneLoginModuleJohn Hurliman2-3/+3
2009-10-26* Changed the watchdog timer to improve the speed of UpdateThread(), only ↵John Hurliman3-32/+38
track threads once the first call to UpdateThread() has been made, and allow re-tracking of threads that timed out but revived later * Added a commented out call to Watchdog.UpdateThread() in OdeScene. If it turns out that loading a large OAR file or some other operation is timing out the heartbeat thread, we'll need to uncomment it
2009-10-26Changed UseCircuitCode handling to be synchronous or asynchronous depending ↵John Hurliman1-10/+21
on the async_packet_handling config option, and added a debug log message when a UseCircuitCode packet is handled
2009-10-26Removed an unnecessary lock in LLUDPClient.UpdateRTO() and ↵John Hurliman1-30/+21
LLUDPClient.BackoffRTO()
2009-10-26Thank you, RemedyTomm, for an update to your previous patch. Garbage-collectMelanie1-2/+21
the transfers that never happen.
2009-10-26Thank you, RemedyTomm, for a patch to handle Xfer requests being droppedMelanie1-2/+24
before the file data to be transfered is ready.
2009-10-25Having a commit fail... this fixes a typo in the previous commit(s?)John Hurliman1-1/+1
2009-10-25Minor tweaks to get OpenSim compiling against both the current libomv and ↵John Hurliman2-1/+3
the upcoming 0.8.0
2009-10-25Minor tweaks to get OpenSim compiling against both the current libomv and ↵John Hurliman3-2/+4
the upcoming 0.8.0
2009-10-25Changing Scene.ForEachClient to use the synchronous for loop instead of ↵John Hurliman10-145/+153
Parallel. This is quite possibly the source of some deadlocking, and at the very least the synchronous version gives better stack traces * Lock the LLUDPClient RTO math * Add a helper function for backing off the RTO, and follow the optional advice in RFC 2988 to clear existing SRTT and RTTVAR values during a backoff * Removing the unused PrimitiveBaseShape.SculptImage parameter * Improved performance of SceneObjectPart instantiation * ZeroMesher now drops SculptData bytes like Meshmerizer, to allow the texture data to be GCed * Improved typecasting speed in MySQLLegacyRegionData.BuildShape() * Improved the instantiation of PrimitiveBaseShape
2009-10-23* Changed various modules to not initialize timers unless the module is ↵John Hurliman7-31/+41
initialized. Ideally, the timers would not initialize unless the module was actually enabled, but Melanie's work on configuring module loading from a config file should make that unnecessary * Wrapped the Bitmap class used to generate the world map tile in a using statement to dispose of it after the JPEG2000 data is created
2009-10-23* Change the way Util.FireAndForget() calls SmartThreadPool to avoid using a ↵John Hurliman1-1/+11
delegate (which STP appears to hold on to). This removes the slow leak I was seeing when using async_call_method=SmartThreadPool and stabilizes allocated memory for an idle OpenSim instance
2009-10-23* Unregister Mono.Addins event handlers in PluginLoader.Dispose() and always ↵John Hurliman6-24/+39
handle PluginLoader with the using pattern. This freed up 121,634,796 bytes on my system * Avoid allocating an Action<IClientAPI> object every round of the OutgoingPacketHandler * Removed unnecessary semi-colon endings from OpenSim.ini.example [InterestManagement] section
2009-10-23Cleaning up OpenSim.ini.example for LLUDP. The [LLClient] section has been ↵John Hurliman2-13/+28
removed and several new parameters have been added to [ClientStack.LindenUDP]
2009-10-23Patch from dslake http://opensimulator.org/mantis/view.php?id=4291 0004291: ↵dslake1-2/+3
Inconsistent locking of ODE tainted prims
2009-10-23Inconsistent locking of SenseRepeaters in Script Engine.unknown1-8/+11
When I attempt to 'save oar' on a region with thousands of scripts with timers, I get a NullReferenceException every time. The problem comes from inconsistent locking in SensorRepeat.cs of the SenseRepeaters List. It is iterated and modified in many places and these places are all wrapped in a lock except in the GetSerializationData(). This is the function throwing the exception because an item in the list becomes null during iteration. The attached patch locks SenseRepeatListLock in GetSerializationData()
2009-10-23Fix a glitch in a ROBUST messageMelanie1-1/+1
2009-10-23Implemented a "FrontBack" prioritizer, using distance plus the plane ↵John Hurliman3-3/+78
equation to give double weight to prims/avatars in front of you
2009-10-23Adding the presence service skeletonMelanie3-0/+192
2009-10-23Uncommented the resend log line so the previous commit can be seen in actionJohn Hurliman1-1/+1
2009-10-23* Changed the max RTO value to 60 seconds to comply with RFC 2988John Hurliman2-1/+4
* Implemented section 5.5, exponential backoff of the RTO after a resend
2009-10-23Commented out noisy debugging about resent packets (normal) and agents ↵John Hurliman2-3/+3
setting throttles (normal)
2009-10-23Experimental change to use an immutable array for iterating ScenePresences, ↵John Hurliman13-284/+308
avoiding locking and copying the list each time it is accessed
2009-10-22* Moved Copyrights above the comments in ODEPrim and ODEDynamics so they're ↵Teravus Ovares (Dan Olivares)2-26/+28
consistent with the rest (and so chi11ken's auto copyright adding script doesn't duplicate the copyright.
2009-10-22* Send out m_bodyRot everywhere instead of m_rotation. Still have no clue ↵John Hurliman2-23/+23
which is right * Fix WorldMapModule.process() to not trip the watchdog timer
2009-10-22Forgot to hit save in the last commitJohn Hurliman1-1/+1
2009-10-22* Sending (position - hipoffset) instead of positionJohn Hurliman1-5/+2
* Sending m_rotation instead of m_bodyRot in full updates to match terse updates (no idea which one is right!)
2009-10-22Implemented a Watchdog class. Do not manually create Thread objects anymore, ↵John Hurliman17-120/+306
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
2009-10-22Commented out instrumentation in ODEPrim.csKittoFlora1-0/+8
2009-10-22Terrible typo in the previous commit!John Hurliman1-1/+1
2009-10-22* Added a check if Util.m_ThreadPool is null before trying to use it, and if ↵John Hurliman1-13/+7
so initialize it to sane defaults * Simplified the InitThreadPool() function
2009-10-22Correct version number after mergeMelanie1-2/+2
2009-10-22Fixing the patch to the patchSnowcrash1-3/+6
2009-10-22Fix rounding error in PRIM_SIZE portion of llSetPrimitiveParamsSnowcrash1-3/+4