On OpenBSD, terminating IDLE with ctrl-c from the command line caused a
stuck subprocess MainThread because only the SocketThread was exiting.

M NEWS.txt
M idlever.py
M run.py
diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py
index 98b8c13..90a4692 100644
--- a/Lib/idlelib/run.py
+++ b/Lib/idlelib/run.py
@@ -215,6 +215,7 @@
         Interrupt the MainThread and exit server if link is dropped.
 
         """
+        global quitting
         try:
             raise
         except SystemExit:
@@ -233,7 +234,8 @@
             traceback.print_exc(file=erf)
             print>>erf, '\n*** Unrecoverable, server exiting!'
             print>>erf, '-'*40
-            exit()
+            quitting = True
+            thread.interrupt_main()
 
 
 class MyHandler(rpc.RPCHandler):