If you check out the multithreading.lua in Joshua, you'll see that all functions are now in a single table acting as a namespace (globals are eeeeeevil). The most important change is timing, you can set the time that the tasks have to execute, it will then keep executing tasks until that time is exceeded. If yield is called when there is still spare time, it will ignore the yield, and if a task finishes when there are more in the queue it will start the next task and so on. This all sound good, except that in practice I have found that using a time of anyhting larger than 1 millisecond will crash defcon, which is unfortunate. 1ms is a surprisingly long time, however, and some of my long tasks take much less time to execute now
EDIT:: If you guys nab the multithreading file off the svn, feel free to use it.
My only advantage writing Joshua is I'm a far more experienced coder, why am I giving these benefits away?




