Skip to content

Commit 77f5b45

Browse files
add comment
1 parent 2648613 commit 77f5b45

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

Python/instrumentation.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@
3939
#endif
4040

4141
#ifdef Py_GIL_DISABLED
42-
42+
// MODIFY_BYTECODE modifies thread local bytecode of all threads,
43+
// so it must be called with the world stopped.
4344
#define MODIFY_BYTECODE(code, func, ...) \
4445
do { \
4546
ASSERT_WORLD_STOPPED(); \
@@ -671,6 +672,7 @@ de_instrument(PyCodeObject *code, _Py_CODEUNIT *bytecode, _PyCoMonitoringData *m
671672
{
672673
assert(event != PY_MONITORING_EVENT_INSTRUCTION);
673674
assert(event != PY_MONITORING_EVENT_LINE);
675+
ASSERT_WORLD_STOPPED();
674676

675677
_Py_CODEUNIT *instr = &bytecode[i];
676678
uint8_t *opcode_ptr = &instr->op.code;
@@ -700,6 +702,7 @@ static void
700702
de_instrument_line(PyCodeObject *code, _Py_CODEUNIT *bytecode, _PyCoMonitoringData *monitoring,
701703
int i)
702704
{
705+
ASSERT_WORLD_STOPPED();
703706
_Py_CODEUNIT *instr = &bytecode[i];
704707
int opcode = instr->op.code;
705708
if (opcode != INSTRUMENTED_LINE) {
@@ -724,6 +727,7 @@ static void
724727
de_instrument_per_instruction(PyCodeObject *code, _Py_CODEUNIT *bytecode,
725728
_PyCoMonitoringData *monitoring, int i)
726729
{
730+
ASSERT_WORLD_STOPPED();
727731
_Py_CODEUNIT *instr = &bytecode[i];
728732
uint8_t *opcode_ptr = &instr->op.code;
729733
int opcode = *opcode_ptr;
@@ -749,6 +753,7 @@ de_instrument_per_instruction(PyCodeObject *code, _Py_CODEUNIT *bytecode,
749753
static void
750754
instrument(PyCodeObject *code, _Py_CODEUNIT *bytecode, _PyCoMonitoringData *monitoring, int i)
751755
{
756+
ASSERT_WORLD_STOPPED();
752757
_Py_CODEUNIT *instr = &bytecode[i];
753758
uint8_t *opcode_ptr = &instr->op.code;
754759
int opcode =*opcode_ptr;
@@ -778,6 +783,7 @@ instrument(PyCodeObject *code, _Py_CODEUNIT *bytecode, _PyCoMonitoringData *moni
778783
static void
779784
instrument_line(PyCodeObject *code, _Py_CODEUNIT *bytecode, _PyCoMonitoringData *monitoring, int i)
780785
{
786+
ASSERT_WORLD_STOPPED();
781787
uint8_t *opcode_ptr = &bytecode[i].op.code;
782788
int opcode = *opcode_ptr;
783789
if (opcode == INSTRUMENTED_LINE) {
@@ -792,6 +798,7 @@ static void
792798
instrument_per_instruction(PyCodeObject *code, _Py_CODEUNIT *bytecode,
793799
_PyCoMonitoringData *monitoring, int i)
794800
{
801+
ASSERT_WORLD_STOPPED();
795802
_Py_CODEUNIT *instr = &bytecode[i];
796803
uint8_t *opcode_ptr = &instr->op.code;
797804
int opcode = *opcode_ptr;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy