Commit Graph

45 Commits

Author SHA1 Message Date
Tedd Hansen
a43bb10000 Execution threads are now shared between regions too. Default thread count regardless of number of regions is now 3. This will save you around 33 threads for a normal 3x3 region server.
But, this is totally completely untested. So it probably won't work for another patch or five.
2008-02-22 14:09:38 +00:00
Tedd Hansen
3bb0fe098f Maintenance thread in charge of loading/unloading of scripts. 1 thread less per region.
Total so far: 2 threads less per region
Note: Currently causes delay in load/unload of scripts
2008-02-22 13:23:45 +00:00
Tedd Hansen
9f7366210a Now last commit will compile too... The features just keep on coming! 2008-02-22 13:15:01 +00:00
Tedd Hansen
a040008cb9 From this commit and a few hours into the future ScriptEngine will be unstable:
* Speeding up ScriptEngine shutdown
* Sharing threads so that minimum total thread count for any amount of regions will be 2. (1 maintenance, 1 script execution)
You can choose more script exec threads if you want of course.
In this commit: Sharing maintenance thread between all regions.
2008-02-22 12:50:24 +00:00
Tedd Hansen
f75e418211 Fixes to ScriptEngine thread cleanup on destructor 2008-02-21 23:43:58 +00:00
Tedd Hansen
89665faeaf ScriptEngine changes in locking. Another step in direction of shared threads. 2008-02-21 11:28:34 +00:00
Tedd Hansen
7102ac7769 "threads" command now works. I've added manual tracking of threads (only if compiled in DEBUG mode)... Its ugly and even requires a separate thread to track the treads, but it will be very valuable in debugging. 2008-02-21 10:43:24 +00:00
Tedd Hansen
684059afdf div+
threads console command will list all threads. This + yesterdays naming threads patch will give a good overview of what threads we have running.
2008-02-20 20:22:15 +00:00
Jeff Ames
a8cfbbe963 Minor cleanup. 2008-02-20 18:38:20 +00:00
Tedd Hansen
416d752829 llSetTimerEvent updated to use ticks instead of DateTime for internal timing. 2008-02-20 17:35:28 +00:00
Tedd Hansen
96edcea3ae llSetTimerEvent was setting seconds as milliseconds causing major problems in timed scripts... 2008-02-20 17:14:01 +00:00
Sean Dague
530cc24884 From: Michael Osias <mosias@us.ibm.com>
This patch implements the llSendRemoteData command and fixes mantis 552,
and possibly 586.
2008-02-19 19:16:21 +00:00
Sean Dague
f47bcb0f98 bring back some script engine debugging, hoping this will help track down the randoms segfaults 2008-02-18 14:17:09 +00:00
Justin Clarke Casey
1cbef0b908 Patch from Michael Osias IBM (jimbo2120)
In his own words: 
If a prim becomes a listener or remote channel and the script is deleted, it cannot become a listener or channel again with a new script.  
This patch fixes that.
2008-02-18 11:14:53 +00:00
Tedd Hansen
44058f8ae6 state_entry is now executed on state change. 2008-02-10 22:36:01 +00:00
Charles Krinke
dfca32b046 Missed one event message that needed to be
commented out.
2008-02-08 02:23:57 +00:00
Charles Krinke
2fb541cb2a Make timer events from scripts a little less chatty.
DEBUG is defined by default in the Linux build.
2008-02-08 01:42:56 +00:00
Jeff Ames
6ed5283bc0 Converted logging to use log4net.
Changed LogBase to ConsoleBase, which handles console I/O.
This is mostly an in-place conversion, so lots of refactoring can still be done.
2008-02-05 19:44:27 +00:00
Jeff Ames
99844ee4c0 Added copyright statements. 2008-02-05 03:20:51 +00:00
Tedd Hansen
5a99a96fed Temporarily disabled shared threads because of a bug. Script were only working on 1 region. :)
Using default warning level on C#/VB compile
2008-02-03 09:35:50 +00:00
Tedd Hansen
785b641272 fixed a timing bug in config re-read. Apparently there is 1000000000 ns in one second... 2008-02-02 07:53:13 +00:00
Tedd Hansen
2db5de3e72 Added commands to change config file from console:
CONFIG SET section key value value value
CONFIG GET section key
CONFIG SAVE (it saves, but does it save correctly?:)

ScriptEngine will react correctly to any config change made while it is running.
2008-02-02 07:35:51 +00:00
Jeff Ames
b1a6f4821b Updated svn properties. 2008-02-02 07:13:37 +00:00
Tedd Hansen
7bd3ecfc2a Bugfixes. Now it even reads configuration before it uses it! ;) 2008-02-02 04:35:08 +00:00
Tedd Hansen
e06ee9fd4b Added load/unload queue size limit
Added option to share script load/unload thread between regions
Added event execution queue size limit
+ some bugfixes from all the changes
2008-02-02 03:11:06 +00:00
Tedd Hansen
8ccc12d642 Added OpenSim.32BitLaunch.exe that can be used on 64-bit systems to run OpenSim in 32-bit mode.
Added VISUAL BASIC.NET-support
//cs, //lsl and //vb as first characters of script will determine what compiler is used.
Compile warnings are no longer treated as errors. Script will still run.
Added a few useless and useful config options:
Write script source to harddisk for debug, Default compile language, Allowed compilers (languages), compile in release or debug mode, clean up old scripts on startup
Loads of warnings for incorrect config
2008-02-02 02:35:56 +00:00
Tedd Hansen
667197f24d Added OpenSim.32BitLaunch.exe that can be used on 64-bit systems to run OpenSim in 32-bit mode.
Fixed ScriptEngine.Common startup problems.
2008-02-02 00:59:22 +00:00
Tedd Hansen
ea74f97e9b Forgot to create an object before use. Now why can't .Net just do that itself? :) 2008-02-02 00:20:31 +00:00
Tedd Hansen
34d21ac94b Added some error checking to MaintenanceThread, no-crash (just log) loading of script engines, and support to load multiple script engines 2008-02-02 00:09:55 +00:00
Tedd Hansen
694642a482 Moved iniFilePath to a static and put it in OpenSim.Application.iniFilePath.
Refreshing config based on this.
Temporarily disabled feature to refresh config file while running.
2008-02-01 23:56:09 +00:00
Tedd Hansen
4715453159 Bugfix, maybe it won't crash during startup and crash somewhere else instead? :) 2008-02-01 23:44:02 +00:00
Tedd Hansen
d02a90823f SCRIPTING STILL BROKEN
Added comments and regions, restructured code
Changed a lot of AppDomain junk from console from using Console.Write to Log.Verbose and set it to #if DEBUG
All modules should now refresh their configuration runtime
Made all logging in ScriptEngine.Common get script name from actual engine
Renamed LSLLongCmdHandler to AsyncLSLCommandManager
Added auto-recover with 5 sec throttle for new MaintenanceThread
2008-02-01 23:36:36 +00:00
Tedd Hansen
a6726b0c9d SCRIPT SUPPORT IS STILL BROKEN.
Bugfix: Scripts exceeding max and set to be killed were not killed, only removed.
Added ability to re-read configuration while OpenSim is running
All regions now sharing one MaintenanceThread
New MaintenanceThread:
- checks for script execution timeout
- re-reads config
- starts/stops threads if thread active count becomes too high/low compared to config
Speed increase on event execution:
- Reuse of try{}catch{} blocks
- Time calculation on event execution
2008-02-01 22:18:55 +00:00
Tedd Hansen
0c0286911d Config option to set number of scripts per AppDomain 2008-02-01 20:52:00 +00:00
Tedd Hansen
e14c8f59f7 Added config options:
ScriptThreadPriority to set script thread priority
DeactivateScriptOnTimeout to remove script if it is executing too long
2008-02-01 20:45:15 +00:00
Tedd Hansen
f4ddf5cf28 Removed "Loading inventory for Primitive" message.
Fixed small bug in thread counter.
2008-02-01 20:19:29 +00:00
Tedd Hansen
a9c1f3fdb4 Experimental
Moved DotNetScriptEngine configuration to config file.
Added option to share script execution threads between regions.
2008-02-01 20:12:25 +00:00
Tedd Hansen
5d6e89eaf9 Highly experimental
A separate thread is used to enforce max function (event) execution time for scripts.
2008-02-01 19:07:05 +00:00
Teravus Ovares
8fdeab57b1 * Potential fix to the 'can't run a script anymore bug' 2008-01-19 02:58:19 +00:00
Tedd Hansen
82d43db1cc Added data structure to be passed through event execution queue so that events can use llDetect*-commands to find information about event. 2008-01-17 15:22:35 +00:00
Teravus Ovares
c2863df49d * Added and implemented the LSL changed event.
* An example changed event syntax is at: http://opensimulator.org/wiki/Changed_Event_Example
* You can use this to trigger actions in your script if someone sits on your object_rez
* You can use this to figure out all of the CHANGED_ constants except for CHANGED_REGION, CHANGED_TELEPORT, and CHANGED_ALLOW_DROP
2008-01-17 02:23:48 +00:00
Adam Frisby
b25f9f322c * Mother of all commits:
* Cleaned up copyright notices in AssemblyInfo.cs's
* Added Copyright headers to a bunch of files missing them
* Replaced several common string instances with a static constant to prevent reallocation of the same strings thousands of times. "" -> String.Empty is the first such candidate.
2008-01-15 02:09:55 +00:00
Tedd Hansen
0081c060d0 Set eol 2008-01-12 14:45:59 +00:00
Tedd Hansen
33d82aa532 Added license to new files 2008-01-12 14:40:28 +00:00
Tedd Hansen
bacbade369 Major reorganizing of DotNetEngine. Moved common script engine parts to ScriptEngine.Common, only .Net-specific code in DotNetEngine. AppDomains, event handling, event execution queue and multithreading, script load/unload queue, etc has been moved to ScriptEngine.Common.
Loads of things has been put into interfaces instead of the specific class.
We are now one step closer to ScriptServer, and its very easy to implement new script languages. Just a few lines required to make them a OpenSim script module with all its glory.
2008-01-12 14:30:22 +00:00