use VE7CC;
use DXXml;
use AsyncMsg;
+use JSON;
use Mojo::IOLoop;
use Mojo::IOLoop::ForkCall;
# Punt off a long running command into a separate process
#
-# Hhis is called from commands to run some potentially long running
+# This is called from commands to run some potentially long running
# function. The process forks and then runs the function and returns
# the result back to the cmd.
+#
+# NOTE: this merely forks the current process and then runs the cmd in that (current) context.
+# IT DOES NOT START UP SOME NEW PROGRAM AND RELIES ON THE FACT THAT IT IS RUNNING DXSPIDER
+# THE CURRENT CONTEXT!!
#
# call: $self->spawn_cmd(\<function>, [cb => sub{...}], [prefix => "cmd> "], [progress => 0|1], [args => [...]]);
sub spawn_cmd
no strict 'refs';
my $fc = Mojo::IOLoop::ForkCall->new;
+ $fc->serializer(\&encode_json);
+ $fc->deserializer(\&decode_json);
$fc->run(
sub {my @args = @_; my @res = $cmdref->(@args); return @res},
$args,