Skip to content

Commit 2252e33

Browse files
committed
RunArgument: don't run multithreaded
We do not want to run arguments in parallel. When a RunArgument returns we want all work to be done so that cleanup can be performed.
1 parent 6969130 commit 2252e33

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

src/main/java/org/scijava/command/console/RunArgument.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,11 @@
3535
import java.util.HashMap;
3636
import java.util.LinkedList;
3737
import java.util.Map;
38+
import java.util.concurrent.ExecutionException;
39+
import java.util.concurrent.Future;
3840

3941
import org.scijava.command.CommandInfo;
42+
import org.scijava.command.CommandModule;
4043
import org.scijava.command.CommandService;
4144
import org.scijava.console.AbstractConsoleArgument;
4245
import org.scijava.console.ConsoleArgument;
@@ -106,7 +109,7 @@ private void run(final String commandToRun, final String optionString) {
106109
final File scriptFile = new File(commandToRun);
107110
if (scriptFile.exists() && scriptService.canHandleFile(commandToRun)) {
108111
try {
109-
scriptService.run(scriptFile, true, inputMap);
112+
scriptService.run(scriptFile, true, inputMap).get();
110113
} catch (final Exception exc) {
111114
logService.error(exc);
112115
}
@@ -129,7 +132,10 @@ private void run(final String commandToRun, final String optionString) {
129132
// couldn't find anything to run
130133
if (info == null) return;
131134
// TODO: parse the optionString a la ImageJ1
132-
commandService.run(info, true, inputMap);
135+
try {
136+
commandService.run(info, true, inputMap).get();
137+
} catch (final Exception exc) {
138+
logService.error(exc);
139+
}
133140
}
134-
135141
}

0 commit comments

Comments
 (0)