1 package org.simantics.scl.runtime.utils;
3 import java.io.PrintWriter;
4 import java.io.StringWriter;
5 import java.util.Arrays;
8 import org.simantics.scl.runtime.SCLContext;
9 import org.simantics.scl.runtime.function.Function;
10 import org.simantics.scl.runtime.reporting.SCLReporting;
11 import org.simantics.scl.runtime.tuple.Tuple0;
13 public class AsyncUtils {
14 public static void runAsync(Function f) {
15 SCLContext context = SCLContext.createDerivedContext();
19 SCLContext.push(context);
21 f.apply(Tuple0.INSTANCE);
22 } catch(Exception e) {
23 StringWriter sw = new StringWriter();
24 e.printStackTrace(new PrintWriter(sw));
25 SCLReporting.printError(sw.toString());
33 public static List<Object> pmap(Function f, List<Object> l) {
34 return Arrays.asList(l.parallelStream().map(a -> f.apply(a)).toArray());