From e2a8afb9c44e49312b26d8c6180d9f4c0831aacc Mon Sep 17 00:00:00 2001 From: Alex Kwiatkowski Date: Tue, 28 Jan 2014 13:54:15 -0500 Subject: [PATCH] Fix killing webkit_server on JRuby Connection now waits until webkit_server has started to discover the pid. --- lib/capybara/webkit/connection.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/capybara/webkit/connection.rb b/lib/capybara/webkit/connection.rb index d8bee71..0cc0220 100644 --- a/lib/capybara/webkit/connection.rb +++ b/lib/capybara/webkit/connection.rb @@ -47,12 +47,12 @@ module Capybara::Webkit def start_server open_pipe discover_port + discover_pid forward_output_in_background_thread end def open_pipe - _, @pipe_stdout, @pipe_stderr, wait_thr = Open3.popen3(SERVER_PATH) - @pid = wait_thr[:pid] + _, @pipe_stdout, @pipe_stderr, @wait_thr = Open3.popen3(SERVER_PATH) register_shutdown_hook end @@ -81,6 +81,10 @@ module Capybara::Webkit end end + def discover_pid + @pid = @wait_thr[:pid] + end + def forward_output_in_background_thread Thread.new do Thread.current.abort_on_exception = true