# Issue1733757
# Avoid a deadlock when sys.settrace steps into threading._shutdown
import subprocess
- rc = subprocess.call([sys.executable, "-c", """if 1:
+ p = subprocess.Popen([sys.executable, "-c", """if 1:
import sys, threading
# A deadlock-killer, to prevent the
return func
sys.settrace(func)
- """])
+ """],
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE)
+ stdout, stderr = p.communicate()
+ rc = p.returncode
self.assertFalse(rc == 2, "interpreted was blocked")
- self.assertTrue(rc == 0, "Unexpected error")
+ self.assertTrue(rc == 0,
+ "Unexpected error: " + ascii(stderr))
def test_join_nondaemon_on_shutdown(self):
# Issue 1722344