From 0c5db831498a8f41710015a143c865d4a0f371ad Mon Sep 17 00:00:00 2001 From: Mick Jordan <mick.jordan@oracle.com> Date: Tue, 13 Dec 2016 08:51:44 -0800 Subject: [PATCH] .fastr.context.eval: dispose of PolyglotEngine when run in calling thread --- .../oracle/truffle/r/nodes/builtin/fastr/FastRContext.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRContext.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRContext.java index 4a6ededba9..dd68c15f3a 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRContext.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRContext.java @@ -192,7 +192,11 @@ public class FastRContext { if (pc == 1) { ContextInfo info = createContextInfo(contextKind); PolyglotEngine vm = info.createVM(); - results[0] = RContext.EvalThread.run(vm, info, RSource.fromTextInternal(exprs.getDataAt(0), RSource.Internal.CONTEXT_EVAL)); + try { + results[0] = RContext.EvalThread.run(vm, info, RSource.fromTextInternal(exprs.getDataAt(0), RSource.Internal.CONTEXT_EVAL)); + } finally { + vm.dispose(); + } } else { // separate threads that run in parallel; invoking thread waits for completion RContext.EvalThread[] threads = new RContext.EvalThread[pc]; -- GitLab