Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
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)

AltStyle によって変換されたページ (->オリジナル) /