Skip to content

Commit da5c286

Browse files
committed
Expose threadstate_set_async_exc in _testlimitedcapi
1 parent 4c95ad8 commit da5c286

File tree

6 files changed

+32
-1
lines changed

6 files changed

+32
-1
lines changed

Modules/Setup.stdlib.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@
176176
@MODULE__TESTBUFFER_TRUE@_testbuffer _testbuffer.c
177177
@MODULE__TESTINTERNALCAPI_TRUE@_testinternalcapi _testinternalcapi.c _testinternalcapi/test_lock.c _testinternalcapi/pytime.c _testinternalcapi/set.c _testinternalcapi/test_critical_sections.c _testinternalcapi/complex.c _testinternalcapi/interpreter.c
178178
@MODULE__TESTCAPI_TRUE@_testcapi _testcapimodule.c _testcapi/vectorcall.c _testcapi/heaptype.c _testcapi/abstract.c _testcapi/unicode.c _testcapi/dict.c _testcapi/set.c _testcapi/list.c _testcapi/tuple.c _testcapi/getargs.c _testcapi/datetime.c _testcapi/docstring.c _testcapi/mem.c _testcapi/watchers.c _testcapi/long.c _testcapi/float.c _testcapi/complex.c _testcapi/numbers.c _testcapi/structmember.c _testcapi/exceptions.c _testcapi/code.c _testcapi/buffer.c _testcapi/pyatomic.c _testcapi/run.c _testcapi/file.c _testcapi/codec.c _testcapi/immortal.c _testcapi/gc.c _testcapi/hash.c _testcapi/time.c _testcapi/bytes.c _testcapi/object.c _testcapi/modsupport.c _testcapi/monitoring.c _testcapi/config.c _testcapi/import.c _testcapi/frame.c _testcapi/type.c _testcapi/function.c _testcapi/module.c
179-
@MODULE__TESTLIMITEDCAPI_TRUE@_testlimitedcapi _testlimitedcapi.c _testlimitedcapi/abstract.c _testlimitedcapi/bytearray.c _testlimitedcapi/bytes.c _testlimitedcapi/codec.c _testlimitedcapi/complex.c _testlimitedcapi/dict.c _testlimitedcapi/eval.c _testlimitedcapi/float.c _testlimitedcapi/heaptype_relative.c _testlimitedcapi/import.c _testlimitedcapi/list.c _testlimitedcapi/long.c _testlimitedcapi/object.c _testlimitedcapi/pyos.c _testlimitedcapi/set.c _testlimitedcapi/sys.c _testlimitedcapi/tuple.c _testlimitedcapi/unicode.c _testlimitedcapi/vectorcall_limited.c _testlimitedcapi/version.c _testlimitedcapi/file.c
179+
@MODULE__TESTLIMITEDCAPI_TRUE@_testlimitedcapi _testlimitedcapi.c _testlimitedcapi/abstract.c _testlimitedcapi/bytearray.c _testlimitedcapi/bytes.c _testlimitedcapi/codec.c _testlimitedcapi/complex.c _testlimitedcapi/dict.c _testlimitedcapi/eval.c _testlimitedcapi/float.c _testlimitedcapi/heaptype_relative.c _testlimitedcapi/import.c _testlimitedcapi/list.c _testlimitedcapi/long.c _testlimitedcapi/object.c _testlimitedcapi/pyos.c _testlimitedcapi/set.c _testlimitedcapi/sys.c _testlimitedcapi/threadstate.c _testlimitedcapi/tuple.c _testlimitedcapi/unicode.c _testlimitedcapi/vectorcall_limited.c _testlimitedcapi/version.c _testlimitedcapi/file.c
180180
@MODULE__TESTCLINIC_TRUE@_testclinic _testclinic.c
181181
@MODULE__TESTCLINIC_LIMITED_TRUE@_testclinic_limited _testclinic_limited.c
182182

Modules/_testlimitedcapi.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,9 @@ PyInit__testlimitedcapi(void)
7777
if (_PyTestLimitedCAPI_Init_Sys(mod) < 0) {
7878
return NULL;
7979
}
80+
if (_PyTestLimitedCAPI_Init_ThreadState(mod) < 0) {
81+
return NULL;
82+
}
8083
if (_PyTestLimitedCAPI_Init_Tuple(mod) < 0) {
8184
return NULL;
8285
}

Modules/_testlimitedcapi/parts.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ int _PyTestLimitedCAPI_Init_Long(PyObject *module);
3838
int _PyTestLimitedCAPI_Init_PyOS(PyObject *module);
3939
int _PyTestLimitedCAPI_Init_Set(PyObject *module);
4040
int _PyTestLimitedCAPI_Init_Sys(PyObject *module);
41+
int _PyTestLimitedCAPI_Init_ThreadState(PyObject *module);
4142
int _PyTestLimitedCAPI_Init_Tuple(PyObject *module);
4243
int _PyTestLimitedCAPI_Init_Unicode(PyObject *module);
4344
int _PyTestLimitedCAPI_Init_VectorcallLimited(PyObject *module);
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#include "parts.h"
2+
#include "util.h"
3+
4+
static PyObject *
5+
threadstate_set_async_exc(PyObject *module, PyObject *args)
6+
{
7+
unsigned long id;
8+
PyObject *exc;
9+
if (!PyArg_ParseTuple(args, "kO", &id, &exc)) {
10+
return NULL;
11+
}
12+
int result = PyThreadState_SetAsyncExc(id, exc);
13+
return PyLong_FromLong(result);
14+
}
15+
16+
static PyMethodDef test_methods[] = {
17+
{"threadstate_set_async_exc", threadstate_set_async_exc, METH_VARARGS, NULL},
18+
{NULL},
19+
};
20+
21+
int
22+
_PyTestLimitedCAPI_Init_ThreadState(PyObject *m)
23+
{
24+
return PyModule_AddFunctions(m, test_methods);
25+
}

PCbuild/_testlimitedcapi.vcxproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@
110110
<ClCompile Include="..\Modules\_testlimitedcapi\pyos.c" />
111111
<ClCompile Include="..\Modules\_testlimitedcapi\set.c" />
112112
<ClCompile Include="..\Modules\_testlimitedcapi\sys.c" />
113+
<ClCompile Include="..\Modules\_testlimitedcapi\threadstate.c" />
113114
<ClCompile Include="..\Modules\_testlimitedcapi\tuple.c" />
114115
<ClCompile Include="..\Modules\_testlimitedcapi\unicode.c" />
115116
<ClCompile Include="..\Modules\_testlimitedcapi\vectorcall_limited.c" />

PCbuild/_testlimitedcapi.vcxproj.filters

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
<ClCompile Include="..\Modules\_testlimitedcapi\set.c" />
2727
<ClCompile Include="..\Modules\_testlimitedcapi\sys.c" />
2828
<ClCompile Include="..\Modules\_testlimitedcapi\testcapi_long.h" />
29+
<ClCompile Include="..\Modules\_testlimitedcapi\threadstate.c" />
2930
<ClCompile Include="..\Modules\_testlimitedcapi\tuple.c" />
3031
<ClCompile Include="..\Modules\_testlimitedcapi\unicode.c" />
3132
<ClCompile Include="..\Modules\_testlimitedcapi\vectorcall_limited.c" />

0 commit comments

Comments
 (0)