]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.runtime/src/org/simantics/scl/runtime/utils/AsyncUtils.java
(refs #7607) Async module for running functions asynchronously
[simantics/platform.git] / bundles / org.simantics.scl.runtime / src / org / simantics / scl / runtime / utils / AsyncUtils.java
1 package org.simantics.scl.runtime.utils;
2
3 import org.simantics.scl.runtime.SCLContext;
4 import org.simantics.scl.runtime.function.Function;
5 import org.simantics.scl.runtime.tuple.Tuple0;
6
7 public class AsyncUtils {
8     public static void runAsync(Function f) {
9         SCLContext context = SCLContext.getCurrent();
10         new Thread() {
11             @Override
12             public void run() {
13                 SCLContext.push(context);
14                 try {
15                     f.apply(Tuple0.INSTANCE);
16                 } finally {
17                     SCLContext.pop();
18                 }
19             }
20         }.start();
21     }
22 }