aboutsummaryrefslogtreecommitdiff
path: root/mod/external-handler.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'mod/external-handler.cxx')
-rw-r--r--mod/external-handler.cxx12
1 files changed, 8 insertions, 4 deletions
diff --git a/mod/external-handler.cxx b/mod/external-handler.cxx
index 7f26680..3a85bd8 100644
--- a/mod/external-handler.cxx
+++ b/mod/external-handler.cxx
@@ -13,9 +13,10 @@
#include <type_traits> // static_assert
#include <system_error> // error_code, generic_category()
-#include <libbutl/process.mxx>
-#include <libbutl/fdstream.mxx>
-#include <libbutl/process-io.mxx> // operator<<(ostream, process_args)
+#include <libbutl/process.hxx>
+#include <libbutl/fdstream.hxx>
+#include <libbutl/process-io.hxx> // operator<<(ostream, process_args)
+#include <libbutl/manifest-parser.hxx>
using namespace std;
using namespace butl;
@@ -95,6 +96,8 @@ namespace brep
data_dir));
pipe.out.close ();
+ // Kill the process and wait for its completion.
+ //
auto kill = [&pr, &warn, &handler, &ref] ()
{
// We may still end up well (see below), thus this is a warning.
@@ -103,6 +106,7 @@ namespace brep
<< " execution timeout expired";
pr.kill ();
+ pr.wait ();
};
try
@@ -313,7 +317,7 @@ namespace brep
assert (e != nullptr);
if (!(*e == '\0' && c >= 100 && c < 600))
- bad_value ("invalid HTTP status '" + v + "'");
+ bad_value ("invalid HTTP status '" + v + '\'');
// Save the HTTP status.
//