Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 90192e6

Browse files
committed
Just use _Py_atomic_exchange_ptr instead of FT macro
1 parent 9f2d6b9 commit 90192e6

File tree

2 files changed

+2
-15
lines changed

2 files changed

+2
-15
lines changed

Include/internal/pycore_pyatomic_ft_wrappers.h

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ extern "C" {
3737
_Py_atomic_store_ssize_relaxed(&value, new_value)
3838
#define FT_ATOMIC_STORE_UINT8_RELAXED(value, new_value) \
3939
_Py_atomic_store_uint8_relaxed(&value, new_value)
40-
#define FT_ATOMIC_EXCHANGE_PYOBJECT(value, new_value) \
41-
_Py_atomic_exchange_ptr(&value, new_value)
4240

4341
#else
4442
#define FT_ATOMIC_LOAD_SSIZE(value) value
@@ -50,16 +48,6 @@ extern "C" {
5048
#define FT_ATOMIC_STORE_UINTPTR_RELEASE(value, new_value) value = new_value
5149
#define FT_ATOMIC_STORE_SSIZE_RELAXED(value, new_value) value = new_value
5250
#define FT_ATOMIC_STORE_UINT8_RELAXED(value, new_value) value = new_value
53-
#define FT_ATOMIC_EXCHANGE_PYOBJECT(value, new_value) \
54-
_atomic_exchange_pyobject_withgil(&value, new_value)
55-
56-
static inline PyObject *
57-
_atomic_exchange_pyobject_withgil(PyObject **src, PyObject *new_value)
58-
{
59-
PyObject *res = *src;
60-
*src = new_value;
61-
return res;
62-
}
6351

6452
#endif
6553

Python/instrumentation.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1374,9 +1374,8 @@ _PyMonitoring_RegisterCallback(int tool_id, int event_id, PyObject *obj)
13741374
PyInterpreterState *is = _PyInterpreterState_GET();
13751375
assert(0 <= tool_id && tool_id < PY_MONITORING_TOOL_IDS);
13761376
assert(0 <= event_id && event_id < _PY_MONITORING_EVENTS);
1377-
PyObject *callback = FT_ATOMIC_EXCHANGE_PYOBJECT(is->monitoring_callables[tool_id][event_id],
1378-
Py_XNewRef(obj)
1379-
);
1377+
PyObject *callback = _Py_atomic_exchange_ptr(&is->monitoring_callables[tool_id][event_id],
1378+
Py_XNewRef(obj));
13801379

13811380
return callback;
13821381
}

0 commit comments

Comments
 (0)