From fd533381ad4e4cb991dd1b46a0be938c93bbadc7 Mon Sep 17 00:00:00 2001 From: Dirk Koopman Date: Fri, 15 May 2020 16:52:03 +0100 Subject: [PATCH] various (hopeful) stability changes 1. Remove Storable from subprocessing, introduce DXSubcommand as a light shim over Mojo::IOLoop::Subprocess. 2. Try to prevent user->put when in a spawned process. Which will likely need more thinking about and more work. 3. Make it clearer where the spawns are coming from. --- perl/DXSubprocess.pm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 perl/DXSubprocess.pm diff --git a/perl/DXSubprocess.pm b/perl/DXSubprocess.pm new file mode 100644 index 00000000..44427621 --- /dev/null +++ b/perl/DXSubprocess.pm @@ -0,0 +1,23 @@ +# +# A light shim over Mojo::IOLoop::Subprocess (or Mojo::IOLoop::ForkCall, if we need to go back to that) +# +# But we stop using Storable! +# + +package DXSubprocess; + +use DXUtil; +use DXDebug; +use Mojo::IOLoop; +use Mojo::IOLoop::Subprocess; +use JSON; + +our @ISA = qw(Mojo::IOLoop::Subprocess); + +sub new +{ + my $pkg = shift; + my $class = ref $pkg || __PACKAGE__; + my $ref = Mojo::IOLoop::Subprocess->new->serialize(\&encode_json)->deserialize(\&decode_json); + return bless $ref, $class; +} -- 2.43.0