aboutsummaryrefslogtreecommitdiffstats
path: root/test/openssl/utils.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/openssl/utils.rb')
-rw-r--r--test/openssl/utils.rb33
1 files changed, 18 insertions, 15 deletions
diff --git a/test/openssl/utils.rb b/test/openssl/utils.rb
index e3240a0d1e..f878845354 100644
--- a/test/openssl/utils.rb
+++ b/test/openssl/utils.rb
@@ -299,28 +299,31 @@ AQjjxMXhwULlmuR/K+WwlaZPiLIBYalLAZQ7ZbOPeVkJ8ePao0eLAgEC
ssls = OpenSSL::SSL::SSLServer.new(tcps, ctx)
ssls.start_immediately = start_immediately
- server = Thread.new do
- server_loop(ctx, ssls, stop_pipe_r, ignore_ssl_accept_error, server_proc, threads)
- end
- threads.unshift server
+ begin
+ server = Thread.new do
+ server_loop(ctx, ssls, stop_pipe_r, ignore_ssl_accept_error, server_proc, threads)
+ end
+ threads.unshift server
- $stderr.printf("%s started: pid=%d port=%d\n", SSL_SERVER, $$, port) if $DEBUG
+ $stderr.printf("%s started: pid=%d port=%d\n", SSL_SERVER, $$, port) if $DEBUG
- th = Thread.new do
+ th = Thread.new do
+ begin
+ block.call(server, port.to_i)
+ ensure
+ stop_pipe_w.close
+ end
+ end
begin
- block.call(server, port.to_i)
- ensure
- stop_pipe_w.close
+ th.join
+ rescue Exception
+ threads.unshift th
end
- end
- begin
- th.join
- rescue Exception
- threads.unshift th
+ ensure
+ assert_join_threads(threads)
end
ensure
tcps.close if tcps
- assert_join_threads(threads)
end
}
end