]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Two changes (here we go again :-( ).
authorGuido van Rossum <guido@python.org>
Wed, 19 Nov 1997 16:15:37 +0000 (16:15 +0000)
committerGuido van Rossum <guido@python.org>
Wed, 19 Nov 1997 16:15:37 +0000 (16:15 +0000)
1) The __builtins__ variable in the __main__ module is set to the
__builtin__ module instead of its __dict__.

2) Get rid of the SIGHUP and SIGTERM handlers.  They can't be made to
work reliably when threads may be in use, they are Unix specific, and
Python programmers can now program this functionality is a safer way
using the signal module.

Python/pythonrun.c

index 381c98749ee08091e68d158ee1341ba4328bed11..bfed548674e91f35e478d0d17c22c580d2cb7d8f 100644 (file)
@@ -373,8 +373,9 @@ initmain()
                Py_FatalError("can't create __main__ module");
        d = PyModule_GetDict(m);
        if (PyDict_GetItemString(d, "__builtins__") == NULL) {
-               if (PyDict_SetItemString(d, "__builtins__",
-                                        PyEval_GetBuiltins()))
+               PyObject *bimod = PyImport_ImportModule("__builtin__");
+               if (bimod == NULL ||
+                   PyDict_SetItemString(d, "__builtins__", bimod) != 0)
                        Py_FatalError("can't add __builtins__ to __main__");
        }
 }
@@ -1060,46 +1061,13 @@ Py_Exit(sts)
 #endif
 }
 
-#ifdef HAVE_SIGNAL_H
-static RETSIGTYPE
-sighandler(sig)
-       int sig;
-{
-       signal(sig, SIG_DFL); /* Don't catch recursive signals */
-       /* Do essential exit processing only */
-       call_sys_exitfunc();
-       call_ll_exitfuncs();
-#ifdef HAVE_KILL
-       kill(getpid(), sig); /* Pretend the signal killed us */
-#else
-       exit(1);
-#endif
-       /*NOTREACHED*/
-}
-#endif
-
 static void
 initsigs()
 {
-       RETSIGTYPE (*t)();
 #ifdef HAVE_SIGNAL_H
 #ifdef SIGPIPE
        signal(SIGPIPE, SIG_IGN);
 #endif
-#ifdef SIGHUP
-       t = signal(SIGHUP, SIG_IGN);
-       if (t == SIG_DFL)
-               signal(SIGHUP, sighandler);
-       else
-               signal(SIGHUP, t);
-#endif              
-#ifdef SIGTERM
-       t = signal(SIGTERM, SIG_IGN);
-       if (t == SIG_DFL)
-               signal(SIGTERM, sighandler);
-       else
-               signal(SIGTERM, t);
-#endif
 #endif /* HAVE_SIGNAL_H */
        PyOS_InitInterrupts(); /* May imply initsignal() */
 }