From 46c7d448f27e8fc213c50cd241914b2d94e2e308 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Mon, 10 Aug 2020 20:47:11 +0300 Subject: Fix bash coprocess usage races --- libbutl/manifest-serializer.bash.in | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'libbutl/manifest-serializer.bash.in') diff --git a/libbutl/manifest-serializer.bash.in b/libbutl/manifest-serializer.bash.in index fa6b94a..ce99779 100644 --- a/libbutl/manifest-serializer.bash.in +++ b/libbutl/manifest-serializer.bash.in @@ -64,9 +64,14 @@ function butl_manifest_serializer_start () # [--long-lines] [] # See notes in butl_manifest_parser_start() on bash co-process issues. # - coproc { butl_serialize_manifest "${ops[@]}"; } >&"$butl_manifest_serializer_ofd" + coproc { kill -SIGSTOP $BASHPID; \ + exec "$(butl_path)/manifest" "${ops[@]}" serialize; } \ + >&"$butl_manifest_serializer_ofd" + butl_manifest_serializer_ifd="${COPROC[1]}" butl_manifest_serializer_pid="$COPROC_PID" + + butl_resume_process "$butl_manifest_serializer_pid" } # Finish the manifest serialization co-process. -- cgit v1.1