8000 Merge branch main into main-slp · stackless-dev/stackless@a48f7d0 · GitHub
[go: up one dir, main page]

Skip to content
This repository was archived by the owner on Feb 13, 2025. It is now read-only.

Commit a48f7d0

Browse files
author
Anselm Kruis
committed
Merge branch main into main-slp
2 parents 21dd1f6 + e225beb commit a48f7d0

File tree

10 files changed

+185
-320
lines changed

10 files changed

+185
-320
lines changed

Include/internal/pycore_ceval.h

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,19 @@ extern "C" {
1212
#include "pycore_pystate.h"
1313
#include "pythread.h"
1414

15+
PyAPI_FUNC(void) _Py_FinishPendingCalls(_PyRuntimeState *runtime);
1516
PyAPI_FUNC(void) _PyEval_Initialize(struct _ceval_runtime_state *);
1617
PyAPI_FUNC(void) _PyEval_FiniThreads(
17-
struct _ceval_runtime_state *);
18+
struct _ceval_runtime_state *ceval);
1819
PyAPI_FUNC(void) _PyEval_SignalReceived(
19-
struct _ceval_runtime_state *);
20+
struct _ceval_runtime_state *ceval);
2021
PyAPI_FUNC(int) _PyEval_AddPendingCall(
2122
PyThreadState *tstate,
22-
struct _ceval_runtime_state *,
23-
struct _ceval_interpreter_state *,
24-
unsigned long thread_id,
23+
struct _ceval_runtime_state *ceval,
2524
int (*func)(void *),
2625
void *arg);
27-
PyAPI_FUNC(void) _PyEval_FinishPendingCalls(PyInterpreterState *);
2826
PyAPI_FUNC(void) _PyEval_SignalAsyncExc(
29-
struct _ceval_runtime_state *,
30-
struct _ceval_interpreter_state *);
27+
struct _ceval_runtime_state *ceval);
3128
PyAPI_FUNC(void) _PyEval_ReInitThreads(
3229
_PyRuntimeState *runtime);
3330

Include/internal/pycore_pystate.h

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ struct pyruntimestate;
2929

3030
/* ceval state */
3131

32-
struct _ceval_pending_calls {
32+
struct _pending_calls {
3333
int finishing;
3434
PyThread_type_lock lock;
3535
/* Request for running pending calls. */
@@ -40,7 +40,6 @@ struct _ceval_pending_calls {
4040
int async_exc;
4141
#define NPENDINGCALLS 32
4242
struct {
43-
unsigned long thread_id;
4443
int (*func)(void *);
4544
void *arg;
4645
} calls[NPENDINGCALLS];
@@ -58,21 +57,15 @@ struct _ceval_runtime_state {
5857
int tracing_possible;
5958
/* This single variable consolidates all requests to break out of
6059
the fast path in the eval loop. */
61-
// XXX This can move to _ceval_interpreter_state once all parts
62-
// from COMPUTE_EVAL_BREAKER have moved under PyInterpreterState.
6360
_Py_atomic_int eval_breaker;
6461
/* Request for dropping the GIL */
6562
_Py_atomic_int gil_drop_request;
63+
struct _pending_calls pending;
6664
/* Request for checking signals. */
6765
_Py_atomic_int signals_pending;
6866
struct _gil_runtime_state gil;
6967
};
7068

71-
struct _ceval_interpreter_state {
72-
struct _ceval_pending_calls pending;
73-
};
74-
75-
7669
/* interpreter state */
7770

7871
typedef PyObject* (*_PyFrameEvalFunction)(struct _frame *, int);
@@ -147,7 +140,6 @@ struct _is {
147140

148141
uint64_t tstate_next_unique_id;
149142

150-
struct _ceval_interpreter_state ceval;
151143
struct _warnings_runtime_state warnings;
152144

153145
PyObject *audit_hooks;

Lib/test/test_capi.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,7 @@ def pendingcalls_wait(self, l, n, context = None):
431431
def test_pendingcalls_threaded(self):
432432

433433
#do every callback on a separate thread
434-
n = 32 #total callbacks (see NPENDINGCALLS in pycore_ceval.h)
434+
n = 32 #total callbacks
435435
threads = []
436436
class foo(object):pass
437437
context = foo()

Misc/NEWS.d/next/Core and Builtins/2018-09-15-12-13-46.bpo-33608.avmvVP.rst

Lines changed: 0 additions & 5 deletions
This file was deleted.

Modules/_testcapimodule.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2677,7 +2677,6 @@ pending_threadfunc(PyObject *self, PyObject *arg)
26772677
Py_INCREF(callable);
26782678

26792679
Py_BEGIN_ALLOW_THREADS
2680-
/* XXX Use the internal _Py_AddPendingCall(). */
26812680
r = Py_AddPendingCall(&_pending_callback, callable);
26822681
Py_END_ALLOW_THREADS
26832682

Modules/signalmodule.c

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
#include <process.h>
2222
#endif
2323
#endif
24-
#include "internal/pycore_pystate.h"
2524

2625
#ifdef HAVE_SIGNAL_H
2726
#include <signal.h>
@@ -260,7 +259,6 @@ trip_signal(int sig_num)
260259
/* Notify ceval.c */
261260
_PyRuntimeState *runtime = &_PyRuntime;
262261
PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime);
263-
PyInterpreterState *interp = runtime->interpreters.main;
264262
_PyEval_SignalReceived(&runtime->ceval);
265263

266264
/* And then write to the wakeup fd *after* setting all the globals and
@@ -301,10 +299,7 @@ trip_signal(int sig_num)
301299
{
302300
/* Py_AddPendingCall() isn't signal-safe, but we
303301
still use it for this exceptional case. */
304-
_PyEval_AddPendingCall(tstate,
305-
&runtime->ceval,
306-
&interp->ceval,
307-
runtime->main_thread,
302+
_PyEval_AddPendingCall(tstate, &runtime->ceval,
308303
report_wakeup_send_error,
309304
(void *)(intptr_t) last_error);
310305
}
@@ -323,10 +318,7 @@ trip_signal(int sig_num)
323318
{
324319
/* Py_AddPendingCall() isn't signal-safe, but we
325320
still use it for this exceptional case. */
326-
_PyEval_AddPendingCall(tstate,
327-
&runtime->ceval,
328-
&interp->ceval,
329-
runtime->main_thread,
321+
_PyEval_AddPendingCall(tstate, &runtime->ceval,
330322
report_wakeup_write_error,
331323
(void *)(intptr_t)errno);
332324
}

0 commit comments

Comments
 (0)
0