aboutsummaryrefslogtreecommitdiff
path: root/build2/test/script/runner.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-03-23 21:40:04 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-03-23 21:40:04 +0200
commit9ff6adf13f4176230e39685b9035f176360f712f (patch)
tree2dc97080e673a0b666c5ab771c5de0e09135dddf /build2/test/script/runner.cxx
parenta291d146c1c730510ca3e6b4ecae6c4694dad2cd (diff)
Reimplement testscript builtins without thread detach, future/promise
Diffstat (limited to 'build2/test/script/runner.cxx')
-rw-r--r--build2/test/script/runner.cxx11
1 files changed, 6 insertions, 5 deletions
diff --git a/build2/test/script/runner.cxx b/build2/test/script/runner.cxx
index 3c5f8ba..e969d5a 100644
--- a/build2/test/script/runner.cxx
+++ b/build2/test/script/runner.cxx
@@ -1424,7 +1424,7 @@ namespace build2
assert (ofd.get () != -1 && efd.get () != -1);
optional<process_exit> exit;
- builtin* b (builtins.find (c.program.string ()));
+ builtin_func* bf (builtins.find (c.program.string ()));
bool success;
@@ -1439,7 +1439,7 @@ namespace build2
return args;
};
- if (b != nullptr)
+ if (bf != nullptr)
{
// Execute the builtin.
//
@@ -1448,12 +1448,13 @@ namespace build2
try
{
- future<uint8_t> f (
- (*b) (sp, c.arguments, move (ifd), move (ofd), move (efd)));
+ uint8_t r; // Storage.
+ builtin b (
+ bf (sp, r, c.arguments, move (ifd), move (ofd), move (efd)));
success = run_pipe (sp, nc, ec, move (p.in), ci + 1, li, ll, diag);
- exit = process_exit (f.get ());
+ exit = process_exit (b.wait ());
}
catch (const system_error& e)
{