Nicolas Cannasse 18 年之前
父節點
當前提交
50d4aad8d9
共有 1 個文件被更改,包括 10 次插入1 次删除
  1. 10 1
      std/neko/vm/Ui.hx

+ 10 - 1
std/neko/vm/Ui.hx

@@ -19,13 +19,22 @@ class Os {
 	}
 
 	public static function syncResult<T>( f : Void -> T ) : T {
+		if( isMainThread() )
+			return f();
 		var l = new Lock();
 		var tmp = null;
+		var exc = null;
 		_sync(function() {
-			tmp = f();
+			try {
+				tmp = f();
+			} catch( e : Dynamic ) {
+				exc = { v : e };
+			}
 			l.release();
 		});
 		l.wait();
+		if( exc != null )
+			throw exc.v;
 		return tmp;
 	}