YEngine

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(Preemptive Multitasking)
(Preemptive Multitasking)
Line 9: Line 9:
 
= Preemptive Multitasking =
 
= Preemptive Multitasking =
 
YEngine executes script events using preemptive multitasking.<br>
 
YEngine executes script events using preemptive multitasking.<br>
This means that, at certain control points, a script may release execution, waiting in a queue until it is its turn to execute again.<br>
+
This means that, at certain control points or when told, a script may release execution, waiting in a queue until it is its turn to execute again.<br>
 
Current criteria to release execution is a event can run for about 60ms before placed in queue, then on continuations it can run for about 30ms.
 
Current criteria to release execution is a event can run for about 60ms before placed in queue, then on continuations it can run for about 30ms.
 
The script can also be placed in a sleep state until a sleep time elapses.
 
The script can also be placed in a sleep state until a sleep time elapses.

Revision as of 14:03, 19 September 2020

Contents

Summary

This is a fully functional alternative to XEngine.

  • Preemptive Multitasking
  • Improved script syntax
  • New language extensions

Preemptive Multitasking

YEngine executes script events using preemptive multitasking.
This means that, at certain control points or when told, a script may release execution, waiting in a queue until it is its turn to execute again.
Current criteria to release execution is a event can run for about 60ms before placed in queue, then on continuations it can run for about 30ms. The script can also be placed in a sleep state until a sleep time elapses. This alone solves one of XEngine worse problems: llSleep(). llSleep just places the script on a wait queue, until the sleep time expires, using no other execution resources

Improved script syntax

New language extensions

Configuration

Opensimulation default configuration selects XEngine. To change to YEngine you need to change OpenSim.ini:
[Startup] section:

DefaultScriptEngine = "YEngine"

[Yengine] section:

Enable = true

[Xengine] section:

Enable = false
Personal tools
General
About This Wiki