Make tests faster by reaping threads only at the end
diff --git a/Lib/test/test_smtplib.py b/Lib/test/test_smtplib.py
index 969ff15..05d97ef 100644
--- a/Lib/test/test_smtplib.py
+++ b/Lib/test/test_smtplib.py
@@ -177,7 +177,6 @@
         self.output = io.StringIO()
         sys.stdout = self.output
 
-        self._threads = support.threading_setup()
         self.serv_evt = threading.Event()
         self.client_evt = threading.Event()
         # Capture SMTPChannel debug output
@@ -202,7 +201,6 @@
         # wait for the server thread to terminate
         self.serv_evt.wait()
         self.thread.join()
-        support.threading_cleanup(*self._threads)
         # restore sys.stdout
         sys.stdout = self.old_stdout
         # restore DEBUGSTREAM
@@ -681,7 +679,6 @@
     def setUp(self):
         self.real_getfqdn = socket.getfqdn
         socket.getfqdn = mock_socket.getfqdn
-        self._threads = support.threading_setup()
         self.serv_evt = threading.Event()
         self.client_evt = threading.Event()
         # Pick a random unused port by passing 0 for the port number
@@ -703,7 +700,6 @@
         # wait for the server thread to terminate
         self.serv_evt.wait()
         self.thread.join()
-        support.threading_cleanup(*self._threads)
 
     def testBasic(self):
         # smoke test
@@ -816,6 +812,7 @@
     #test infrastructure can support it.
 
 
+@support.reap_threads
 def test_main(verbose=None):
     support.run_unittest(GeneralTests, DebuggingServerTests,
                               NonConnectingTests,