Update svn properties.

0.6.5-rc1
Jeff Ames 2009-04-27 03:22:31 +00:00
parent d8313e314f
commit 6077bbda30
3 changed files with 90 additions and 90 deletions

View File

@ -1,12 +1,12 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule.Interfaces
{
public interface IMicrothreader
{
void Run(IEnumerable microthread);
}
}
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule.Interfaces
{
public interface IMicrothreader
{
void Run(IEnumerable microthread);
}
}

View File

@ -1,38 +1,38 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using OpenSim.Region.OptionalModules.Scripting.Minimodule.Interfaces;
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
{
public class MicroScheduler : IMicrothreader
{
private readonly List<IEnumerator> m_threads = new List<IEnumerator>();
public void Run(IEnumerable microthread)
{
lock (m_threads)
m_threads.Add(microthread.GetEnumerator());
}
public void Tick(int count)
{
lock (m_threads)
{
if(m_threads.Count == 0)
return;
int i = 0;
while (m_threads.Count > 0 && i < count)
{
i++;
bool running = m_threads[i%m_threads.Count].MoveNext();
if (!running)
m_threads.Remove(m_threads[i%m_threads.Count]);
}
}
}
}
}
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using OpenSim.Region.OptionalModules.Scripting.Minimodule.Interfaces;
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
{
public class MicroScheduler : IMicrothreader
{
private readonly List<IEnumerator> m_threads = new List<IEnumerator>();
public void Run(IEnumerable microthread)
{
lock (m_threads)
m_threads.Add(microthread.GetEnumerator());
}
public void Tick(int count)
{
lock (m_threads)
{
if(m_threads.Count == 0)
return;
int i = 0;
while (m_threads.Count > 0 && i < count)
{
i++;
bool running = m_threads[i%m_threads.Count].MoveNext();
if (!running)
m_threads.Remove(m_threads[i%m_threads.Count]);
}
}
}
}
}

View File

@ -1,40 +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()
{
}
}
}
//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()
{
}
}
}