32 lines
661 B
Haxe
32 lines
661 B
Haxe
package funkin.backend.utils;
|
|
|
|
#if ALLOW_MULTITHREADING
|
|
class ThreadUtil {
|
|
/**
|
|
* Creates a new Thread with an error handler.
|
|
* @param func Function to execute
|
|
* @param autoRestart Whenever the thread should auto restart itself after crashing.
|
|
*/
|
|
public static function createSafe(func:Void->Void, autoRestart:Bool = false) {
|
|
if (autoRestart) {
|
|
return sys.thread.Thread.create(function() {
|
|
while(true) {
|
|
try {
|
|
func();
|
|
} catch(e) {
|
|
trace(e.details());
|
|
}
|
|
}
|
|
});
|
|
} else {
|
|
return sys.thread.Thread.create(function() {
|
|
try {
|
|
func();
|
|
} catch(e) {
|
|
trace(e.details());
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
#end |