summaryrefslogtreecommitdiffstats
path: root/Include
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2003-06-28 21:53:52 (GMT)
committerGuido van Rossum <guido@python.org>2003-06-28 21:53:52 (GMT)
commitb8b6d0c2c63bcd9252ce20ef990da093dda8b8ce (patch)
tree6a7d86081fd3a1be1d446f9b060133b5f340f614 /Include
parent90a2041ffd9789c19344bcf0d1b1e65138312736 (diff)
downloadcpython-b8b6d0c2c63bcd9252ce20ef990da093dda8b8ce.zip
cpython-b8b6d0c2c63bcd9252ce20ef990da093dda8b8ce.tar.gz
cpython-b8b6d0c2c63bcd9252ce20ef990da093dda8b8ce.tar.bz2
Add PyThreadState_SetAsyncExc(long, PyObject *).
A new API (only accessible from C) to interrupt a thread by sending it an exception. This is not always effective, but might help some people. Requested by Just van Rossum and Alex Martelli. It is intentional that you have to write your own C extension to call it from Python. Docs will have to wait.
Diffstat (limited to 'Include')
-rw-r--r--Include/pystate.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/Include/pystate.h b/Include/pystate.h
index c1182a6..63a5cb8 100644
--- a/Include/pystate.h
+++ b/Include/pystate.h
@@ -74,6 +74,9 @@ typedef struct _ts {
int tick_counter;
int gilstate_counter;
+ PyObject *async_exc; /* Asynchronous exception to raise */
+ long thread_id; /* Thread id where this tstate was created */
+
/* XXX signal handlers should also be here */
} PyThreadState;
@@ -93,6 +96,7 @@ PyAPI_FUNC(void) PyThreadState_DeleteCurrent(void);
PyAPI_FUNC(PyThreadState *) PyThreadState_Get(void);
PyAPI_FUNC(PyThreadState *) PyThreadState_Swap(PyThreadState *);
PyAPI_FUNC(PyObject *) PyThreadState_GetDict(void);
+PyAPI_FUNC(int) PyThreadState_SetAsyncExc(long, PyObject *);
/* Variable and macro for in-line access to current thread state */