From 883f7dde3884bca10f324f6a31e0882cf23c04d8 Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Fri, 24 Apr 2009 05:33:23 +0000 Subject: * Implements Microthreading for MRM scripting. * This is achieved through two new keywords "microthreaded" and "relax". example: public microthreaded void MyFunc(...) { ... relax; ... } --- .../Test/Microthreads/MicrothreadSample.txt | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 OpenSim/Region/OptionalModules/Scripting/Minimodule/Test/Microthreads/MicrothreadSample.txt (limited to 'OpenSim/Region/OptionalModules/Scripting/Minimodule/Test/Microthreads/MicrothreadSample.txt') diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/Test/Microthreads/MicrothreadSample.txt b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Test/Microthreads/MicrothreadSample.txt new file mode 100644 index 0000000..dc15c47 --- /dev/null +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Test/Microthreads/MicrothreadSample.txt @@ -0,0 +1,40 @@ +//MRM:C# +using System.Collections; +using System.Collections.Generic; +using OpenSim.Region.OptionalModules.Scripting.Minimodule; + +namespace OpenSim +{ + class MiniModule : MRMBase + { + public microthreaded void MicroThreadFunction(string testparam) + { + Host.Object.Say("Hello " + testparam); + + relax; // the 'relax' keyword gives up processing time. + // and should be inserted before, after or in + // any computationally "heavy" zones. + + int c = 500; + while(c-- < 0) { + Host.Object.Say("C=" + c); + relax; // Putting 'relax' in microthreaded loops + // is an easy way to lower the CPU tax + // on your script. + } + + } + + public override void Start() + { + Host.Microthreads.Run( + MicroThreadFunction("World!") + ); + } + + public override void Stop() + { + + } + } +} -- cgit v1.1