aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/client/uv_stream.lua15
1 files changed, 10 insertions, 5 deletions
diff --git a/test/client/uv_stream.lua b/test/client/uv_stream.lua
index 1f4414c934..cea77f0dbd 100644
--- a/test/client/uv_stream.lua
+++ b/test/client/uv_stream.lua
@@ -102,8 +102,9 @@ ChildProcessStream.__index = ChildProcessStream
function ChildProcessStream.spawn(argv, env, io_extra)
local self = setmetatable({
- _child_stdin = uv.new_pipe(false),
- _child_stdout = uv.new_pipe(false)
+ _child_stdin = uv.new_pipe(false);
+ _child_stdout = uv.new_pipe(false);
+ _exiting = false;
}, ChildProcessStream)
local prog = argv[1]
local args = {}
@@ -114,8 +115,9 @@ function ChildProcessStream.spawn(argv, env, io_extra)
stdio = {self._child_stdin, self._child_stdout, 2, io_extra},
args = args,
env = env,
- }, function()
- self:close()
+ }, function(status, signal)
+ self.status = status
+ self.signal = signal
end)
if not self._proc then
@@ -154,7 +156,10 @@ function ChildProcessStream:close(signal)
if type(signal) == 'string' then
self._proc:kill('sig'..signal)
end
- uv.run('nowait')
+ while self.status == nil do
+ uv.run 'once'
+ end
+ return self.status, self.signal
end
return {