Mercurial > cpython-lru_cache-weakref
annotate Python/sigcheck.c @ 5758:bfe9ba74c19e legacy-trunk
Fix problem discovered by Greg McFarlane: when an imported module
replaces its own entry in sys.module, reference count errors ensue;
even if there is no reference count problem, it would be preferable
for the import to yield the new thing in sys.modules anyway (if only
because that's what later imports will yield). This opens the road to
an official hack to implement a __getattr__ like feature for modules:
stick an instance in sys.modules[__name__].
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 10 Jul 1997 18:00:45 +0000 |
| parents | 5880384d7c71 |
| children | 916fb024ce94 |
| rev | line source |
|---|---|
|
1660
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1 /*********************************************************** |
|
2062
d0d0a69b5ca3
Added 1995 to copyright message.
Guido van Rossum <guido@python.org>
parents:
1660
diff
changeset
|
2 Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam, |
|
d0d0a69b5ca3
Added 1995 to copyright message.
Guido van Rossum <guido@python.org>
parents:
1660
diff
changeset
|
3 The Netherlands. |
|
1660
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
4 |
|
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
5 All Rights Reserved |
|
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
6 |
|
4503
65d2d8e67da3
New permission notice, includes CNRI.
Guido van Rossum <guido@python.org>
parents:
2062
diff
changeset
|
7 Permission to use, copy, modify, and distribute this software and its |
|
65d2d8e67da3
New permission notice, includes CNRI.
Guido van Rossum <guido@python.org>
parents:
2062
diff
changeset
|
8 documentation for any purpose and without fee is hereby granted, |
|
1660
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
9 provided that the above copyright notice appear in all copies and that |
|
4503
65d2d8e67da3
New permission notice, includes CNRI.
Guido van Rossum <guido@python.org>
parents:
2062
diff
changeset
|
10 both that copyright notice and this permission notice appear in |
|
1660
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
11 supporting documentation, and that the names of Stichting Mathematisch |
|
4503
65d2d8e67da3
New permission notice, includes CNRI.
Guido van Rossum <guido@python.org>
parents:
2062
diff
changeset
|
12 Centrum or CWI or Corporation for National Research Initiatives or |
|
65d2d8e67da3
New permission notice, includes CNRI.
Guido van Rossum <guido@python.org>
parents:
2062
diff
changeset
|
13 CNRI not be used in advertising or publicity pertaining to |
|
65d2d8e67da3
New permission notice, includes CNRI.
Guido van Rossum <guido@python.org>
parents:
2062
diff
changeset
|
14 distribution of the software without specific, written prior |
|
65d2d8e67da3
New permission notice, includes CNRI.
Guido van Rossum <guido@python.org>
parents:
2062
diff
changeset
|
15 permission. |
|
1660
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
16 |
|
4503
65d2d8e67da3
New permission notice, includes CNRI.
Guido van Rossum <guido@python.org>
parents:
2062
diff
changeset
|
17 While CWI is the initial source for this software, a modified version |
|
65d2d8e67da3
New permission notice, includes CNRI.
Guido van Rossum <guido@python.org>
parents:
2062
diff
changeset
|
18 is made available by the Corporation for National Research Initiatives |
|
65d2d8e67da3
New permission notice, includes CNRI.
Guido van Rossum <guido@python.org>
parents:
2062
diff
changeset
|
19 (CNRI) at the Internet address ftp://ftp.python.org. |
|
65d2d8e67da3
New permission notice, includes CNRI.
Guido van Rossum <guido@python.org>
parents:
2062
diff
changeset
|
20 |
|
65d2d8e67da3
New permission notice, includes CNRI.
Guido van Rossum <guido@python.org>
parents:
2062
diff
changeset
|
21 STICHTING MATHEMATISCH CENTRUM AND CNRI DISCLAIM ALL WARRANTIES WITH |
|
65d2d8e67da3
New permission notice, includes CNRI.
Guido van Rossum <guido@python.org>
parents:
2062
diff
changeset
|
22 REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF |
|
65d2d8e67da3
New permission notice, includes CNRI.
Guido van Rossum <guido@python.org>
parents:
2062
diff
changeset
|
23 MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH |
|
65d2d8e67da3
New permission notice, includes CNRI.
Guido van Rossum <guido@python.org>
parents:
2062
diff
changeset
|
24 CENTRUM OR CNRI BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL |
|
65d2d8e67da3
New permission notice, includes CNRI.
Guido van Rossum <guido@python.org>
parents:
2062
diff
changeset
|
25 DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR |
|
65d2d8e67da3
New permission notice, includes CNRI.
Guido van Rossum <guido@python.org>
parents:
2062
diff
changeset
|
26 PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER |
|
65d2d8e67da3
New permission notice, includes CNRI.
Guido van Rossum <guido@python.org>
parents:
2062
diff
changeset
|
27 TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR |
|
65d2d8e67da3
New permission notice, includes CNRI.
Guido van Rossum <guido@python.org>
parents:
2062
diff
changeset
|
28 PERFORMANCE OF THIS SOFTWARE. |
|
1660
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
29 |
|
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
30 ******************************************************************/ |
|
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
31 |
|
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
32 /* Sigcheck is similar to intrcheck() but sets an exception when an |
|
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
33 interrupt occurs. It can't be in the intrcheck.c file since that |
|
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
34 file (and the whole directory it is in) doesn't know about objects |
|
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
35 or exceptions. It can't be in errors.c because it can be |
|
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
36 overridden (at link time) by a more powerful version implemented in |
|
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
37 signalmodule.c. */ |
|
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
38 |
|
5373
5880384d7c71
Quickly renamed the remaining files -- this directory is done.
Guido van Rossum <guido@python.org>
parents:
4503
diff
changeset
|
39 #include "Python.h" |
|
1660
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
40 |
|
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
41 /* ARGSUSED */ |
|
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
42 int |
|
5373
5880384d7c71
Quickly renamed the remaining files -- this directory is done.
Guido van Rossum <guido@python.org>
parents:
4503
diff
changeset
|
43 PyErr_CheckSignals() |
|
1660
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
44 { |
|
5373
5880384d7c71
Quickly renamed the remaining files -- this directory is done.
Guido van Rossum <guido@python.org>
parents:
4503
diff
changeset
|
45 if (!PyOS_InterruptOccurred()) |
|
1660
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
46 return 0; |
|
5373
5880384d7c71
Quickly renamed the remaining files -- this directory is done.
Guido van Rossum <guido@python.org>
parents:
4503
diff
changeset
|
47 PyErr_SetNone(PyExc_KeyboardInterrupt); |
|
1660
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
48 return -1; |
|
ffd495bacbd4
Replace intrcheck() by sigcheck() in many places.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
49 } |
