core: poll for process exit on SSH#exec with subprocess
This commit is contained in:
parent
79581df71b
commit
42fa0a6540
|
@ -174,7 +174,13 @@ module Vagrant
|
||||||
process = ChildProcess.build("ssh", *command_options)
|
process = ChildProcess.build("ssh", *command_options)
|
||||||
process.io.inherit!
|
process.io.inherit!
|
||||||
process.start
|
process.start
|
||||||
process.wait
|
|
||||||
|
# Poll for exited rather than call #wait because #wait will hold
|
||||||
|
# the GIL, locking up the entire Ruby VM. See ChildProcess #68
|
||||||
|
while !process.exited?
|
||||||
|
sleep 0.2
|
||||||
|
end
|
||||||
|
|
||||||
return process.exit_code
|
return process.exit_code
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue