John Hurliman
b2ed348aa2
Implemented a Watchdog class. Do not manually create Thread objects anymore, 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-22 12:33:23 -07:00
John Hurliman
11013ad295
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
2009-10-22 11:07:43 -07:00
John Hurliman
36b0e5e1d3
Terrible typo in the previous commit!
2009-10-22 11:07:23 -07:00
John Hurliman
6ca4b0f366
* Added a check if Util.m_ThreadPool is null before trying to use it, and if so initialize it to sane defaults
...
* Simplified the InitThreadPool() function
2009-10-22 10:37:11 -07:00
John Hurliman
4121a02936
OpenSim.ini.example had the wrong names for default values in the [InterestManagement] section. Fixed
2009-10-22 10:15:28 -07:00
Melanie
5d12170df9
Correct version number after merge
2009-10-22 17:41:42 +01:00
Melanie
fc4ff09181
Merge branch 'vehicles'
2009-10-22 17:39:19 +01:00
Snowcrash
84ac0f56f5
Fixing the patch to the patch
2009-10-22 17:36:52 +01:00
Snowcrash
47d8b6c5f5
Fix rounding error in PRIM_SIZE portion of llSetPrimitiveParams
2009-10-22 17:36:49 +01:00
Jeff Ames
d756fa01ae
Add copyright header. Formatting cleanup.
2009-10-22 18:57:24 +09:00
John Hurliman
5d07e18980
A synchronous call to the messaging server was blocking the process of promoting an agent to a root agent (logins and teleports). Changed to an async method
2009-10-22 02:27:06 -07:00
John Hurliman
2f394b7e7e
* Allow SmartThreadPool to be initialized without setting max stack size (like the original implementation)
...
* Only initialize Util's SmartThreadPool if it is actually being used
* No longer initializing Util's SmartThreadPool with a custom max stack size. From MSDN: "Avoid using this constructor overload. The default stack size used by the Thread(ThreadStart) constructor overload is the recommended stack size for threads."
2009-10-22 01:30:12 -07:00
Melanie
c4969d47d9
Merge branch 'master' into vehicles
2009-10-22 07:12:10 +01:00
Melanie
1e71e3f910
Remove the "mel_t" from version string
2009-10-22 07:03:40 +01:00
Melanie
b35fbe1f98
Merge branch 'melanie_test' into prioritization
...
This makes SmartThreadPool configurable and also makes it the default, since
the regular thread pool simply stinks.
2009-10-22 07:02:21 +01:00
John Hurliman
32ccd5bb40
* Changed the misc. methods calling ThreadPool.UnsafeQueueUserWorkItem() to Util.FireAndForget()
...
* Changed Util.FireAndForget() to use any of five different methods set with async_call_method in the [Startup] section of OpenSim.ini. Look at the example config for possible values
2009-10-21 23:03:18 -07:00
Melanie
624af66c35
Make the LSL scripting delays take full effect. To tune, tweat the
...
ScriptDelayFactor in config
2009-10-22 05:42:34 +01:00
Melanie
8ce4fd7234
Reduce the default pool threads to 15 (from 30) and the minimum from 5 to 2
2009-10-22 04:02:26 +01:00
Melanie
8a336c6860
Add MaxPoolThreads in startup to limit the size of the thread pool used
...
for FireAndForget. This lets us limit concurrency to make OpenSim play nice
2009-10-22 02:28:53 +01:00
John Hurliman
6492640e72
* Change the OnQueueEmpty signature to send the flags of the queues that are empty instead of firing once per empty queue
...
* Change the OnQueueEmpty firing to use a minimum time until next fire instead of a sleep
* Set OutgoingPacket.TickCount = 0 earlier to avoid extra resends when things are running slowly (inside a profiler, for example)
2009-10-21 18:03:41 -07:00
Melanie
9ec55df988
Mark new version
2009-10-22 01:51:27 +01:00
John Hurliman
4e04f6b3a5
* Clarified what FireQueueEmpty is doing with a MIN_CALLBACK_MS constant and upped it to 30ms
...
* Removed the unused PacketSent() function
* Switched UnackedPacketCollection from a SortedDictionary to a Dictionary now that the sorting is no longer needed. Big performance improvement for ResendUnacked()
2009-10-21 17:02:55 -07:00
John Hurliman
2b39ff0a39
Merged master into prioritization
2009-10-21 16:24:17 -07:00
John Hurliman
b06f258319
* FireQueueEmpty now checks if a measurable amount of time has passed, and if not it sleeps for a small amount of time. This throttles OnQueueEmpty calls where there is no callback or the callback is doing very little work
...
* Changed HandleQueueEmpty()'s Monitor.TryEnter() calls to locks. We want to take our time in this function and do all the work necessary, since returning too fast will induce a sleep anyways
2009-10-21 16:21:08 -07:00
John Hurliman
2752a3525c
* Changed the timing calculations for sending resends/acks/pings from per-client back to per-scene
...
* Testing a fix from Jim to make the cpu usage fix cleaner
2009-10-21 15:22:23 -07:00
John Hurliman
62f1bfd136
Testing out a hack to identify the source of the high cpu usage
2009-10-21 14:25:22 -07:00
John Hurliman
bb4da417ad
Removing the Sleep(0) call from the OutgoingPacketHandler
2009-10-21 14:03:49 -07:00
John Hurliman
7ee422a344
* Handle UseCircuitCode packets asynchronously. Adding an agent to a scene can take several seconds, and was blocking up packet handling in the meantime
...
* Clamp retransmission timeout values between three and 10 seconds
* Log outgoing time for a packet right after it is sent instead of well before
* Loop through the entire UnackedPacketCollection when looking for expired packets
2009-10-21 13:47:16 -07:00
Melanie
d88bb83136
Fix llParticleSystem to accept LSL variables and LSL constants in place
...
of the named constants for the rule selector.
Information provided by Snowcrash
2009-10-21 20:47:24 +01:00
John Hurliman
9178537e94
* Replaced the UnackedPacketCollection with a lockless implementation. The tiny amount of time spent in the locks turned into a lot of time when the rest of the LLUDP implementation went lockless
...
* Changed the timer tracking numbers for each client to not have "memory". It will no longer queue up calls to functions like ResendUnacked
* Reverted Jim's WaitHandle code. Although it was technically more correct, it exhibited the exact same behavior as the old code but spent more cycles. The 20ms has been replaced with the minimum amount of time before a token bucket could receive a drip, and an else { sleep(0); } was added to make sure the outgoing packet handler always yields at least a minimum amount
2009-10-21 11:59:48 -07:00
Melanie
8dd15fd5a5
Patch by mcortez: Remove lock from scene presence updating in groups module
2009-10-21 18:45:37 +01:00
John Hurliman
c0c845aea4
Fixed the way OnQueueEmpty is called to prevent simultaneous calls for the same category
2009-10-21 01:07:40 -07:00
John Hurliman
cde47c2b3d
Committing Jim's optimization to replace the 20ms sleep in outgoing packet handling with an interruptible wait handle
2009-10-21 00:18:35 -07:00
Melanie
93b24b5207
Fix web map retrieval for regions configured via .ini
2009-10-21 03:44:40 +01:00
Melanie
2a886fd76c
Really make module port selection work. Implement port setting in
...
LLProxyLoginModule.
2009-10-21 02:19:45 +01:00
John Hurliman
45dc4e0a54
* Added a sanity check to GetScriptAssemblies() and GetScriptStates() for the case where no scripting engine is enabled
...
* Added TokenBucket.cs to OpenSim, with some fixes for setting a more accurate MaxBurst value and getting a more accurate Content value (by Drip()ing each get)
2009-10-20 18:19:17 -07:00
John Hurliman
1833c69568
* Removed the unused m_agentUpdates collection and some extra work that was being done for AgentUpdate packets
...
* Start LLUDPClients unpaused (this variable is not being used yet)
2009-10-20 15:19:19 -07:00
John Hurliman
d38f33736c
* Removed the throttle speed optimizations to see if it brings stability back
...
* Changed the outgoing packet handler to use a real function instead of a closure and to track time on a per-client basis instead of a global basis
2009-10-20 14:41:20 -07:00
John Hurliman
d1ab11dc2a
Added try/catches in the outgoing packet handler to match the one in the incoming packet handler
2009-10-20 12:43:09 -07:00
John Hurliman
99abe885c8
Fixing position/rotation/collisionplane in ObjectUpdate packets for avatars
2009-10-20 12:30:34 -07:00
John Hurliman
edd393ff30
Reverting the deletion of files related to texture sending until we figure out exactly what is and isn't needed
2009-10-20 11:58:23 -07:00
Melanie
f568982e69
Cleanup and comment the region module loader. Add support for configuring
...
a server port to use for modules in a generic way and also add support
for disabling modules that don't support proper disabling.
Add support for selective loading by class name (advanced users only)
2009-10-20 19:38:35 +01:00
John Hurliman
8151190a45
* Removing ODEPrim and ODECharacter GetHashCode() overrides since they were based on something that could change
...
* Tweaked a few other GetHashCode() overrides to bring them in line with MSDN recommendations
2009-10-20 10:56:15 -07:00
John Hurliman
9a5e7222ce
* Removing cruft left over from the conversion to the new texture sending and UDP code
...
* Changing the cache modules to only initialize the caches if they are actually enabled. Should save a bit of resources from unused cache systems
2009-10-20 10:33:23 -07:00
Melanie
9bc303d293
Add MainServer.GetHttpServer(port) method for using multiple listener
...
ports in region modules
2009-10-20 16:57:22 +01:00
Melanie
26863c04a5
Change "config save" to "config save <filename>", which is mandatory.
...
File name is enforced to NOT be OpenSim.ini
2009-10-20 14:02:11 +01:00
Snowcrash
182693628c
Fix for index error in llList2String
2009-10-20 02:09:24 -07:00
John Hurliman
0a6ea33ac8
* Optimized sending of terrain data
...
* Send terrain data in a spiral pattern instead of a typewriter pattern (placeholder until terrain data becomes part of the interest list management)
* Added a debug line when resent packets are being sent
2009-10-19 18:50:31 -07:00
John Hurliman
fdce1be3db
* Removed OpenSim.Data.NHibernate
...
* Replaced calls to ThreadPool.QueueUserWorkItem() with ThreadPool.UnsafeQueueUserWorkItem() since OpenSim does not use Code Access Security sandboxing
2009-10-19 16:52:27 -07:00
John Hurliman
72078195c2
Merge branch 'prioritization' of ssh://opensimulator.org/var/git/opensim into prioritization
2009-10-19 15:20:38 -07:00