added example excavate app

This commit is contained in:
2023-08-05 11:42:38 +02:00
parent 44772557ba
commit a568c9cdd8
4 changed files with 122 additions and 2 deletions

View File

@@ -0,0 +1,34 @@
package lib.turtle;
import kernel.turtle.TurtleMutex;
import kernel.ps.ProcessHandle;
import kernel.ps.Process;
abstract class TurtleAppBase implements Process {
private var handle:ProcessHandle;
private var _initFunc:Void->Void;
private var _turtleFunc:Void->Void;
public function new(initFunc:Null<Void->Void>, turtleFunc:Void->Void) {
this._initFunc = initFunc;
this._turtleFunc = turtleFunc;
}
public final function run(handle:ProcessHandle) {
this.handle = handle;
if (!handle.claimTurtleMutex()) {
handle.writeLine("Failed to claim turtle mutex");
handle.close();
}
if (this._initFunc != null) {
this._initFunc();
}
if (this._turtleFunc != null) {
TurtleMutex.runInTThread(this._turtleFunc);
}
}
}