Index: net/test/spawned_test_server/local_test_server.cc |
diff --git a/net/test/spawned_test_server/local_test_server.cc b/net/test/spawned_test_server/local_test_server.cc |
index 6516136cea9d8e9bbd02fec2e8028ff0d3640f17..ee86d74f6dde3afaba69bde191a57f26e38c97ba 100644 |
--- a/net/test/spawned_test_server/local_test_server.cc |
+++ b/net/test/spawned_test_server/local_test_server.cc |
@@ -10,6 +10,7 @@ |
#include "base/path_service.h" |
#include "base/process/kill.h" |
#include "base/strings/string_number_conversions.h" |
+#include "base/test/test_timeouts.h" |
#include "base/values.h" |
#include "net/base/host_port_pair.h" |
#include "net/base/net_errors.h" |
@@ -126,6 +127,10 @@ bool LocalTestServer::Stop() { |
#if defined(OS_WIN) |
// This kills all the processes in the job object. |
+ TerminateJobObject(job_handle_.Get(), 1); |
+ // This is done asynchronously so wait a bit for the processes to be killed. |
+ WaitForSingleObject(job_handle_.Get(), |
+ TestTimeouts::action_timeout().InMilliseconds()); |
job_handle_.Close(); |
#endif |