GeezerVison is showing github.com — Stackless issue #200: fix PyTasklet_Run_nr() and PyTasklet_Switch_nr() · akruis/cpython@5cbfbe2
File tree
Expand file treeCollapse file tree
Open diff view settings
Expand file treeCollapse file tree
Open diff view settings
Collapse file
Copy file name to clipboardExpand all lines: Stackless/changelog.txt +5Lines changed: 5 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -9,6 +9,11 @@ What's New in Stackless 3.X.X? |
9 | 9 |
|
10 | 10 | *Release date: 20XX-XX-XX* |
11 | 11 |
|
| 12 | +- https://github.com/stackless-dev/stackless/issues/200 |
| 13 | + Fix a bug in the C-API functions PyTasklet_Run_nr() and |
| 14 | + PyTasklet_Switch_nr(). Under exotic conditions the functions could |
| 15 | + cause undefined behavior. |
| 16 | + |
12 | 17 | - https://github.com/stackless-dev/stackless/issues/193 |
13 | 18 | Fix the macros PyTasklet_CheckExact(op) and PyChannel_CheckExact(op). |
14 | 19 | Previously they contained a reference to a non existing variable. |
|
Collapse file
Copy file name to clipboardExpand all lines: Stackless/module/taskletobject.c +2-2Lines changed: 2 additions & 2 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -800,7 +800,7 @@ impl_tasklet_run_remove(PyTaskletObject *task, int remove); |
800 | 800 | int |
801 | 801 | PyTasklet_Run_nr(PyTaskletObject *task) |
802 | 802 | { |
803 | | - slp_try_stackless = 1; |
| 803 | + STACKLESS_PROPOSE_ALL(); |
804 | 804 | return slp_return_wrapper(impl_tasklet_run_remove(task, 0)); |
805 | 805 | } |
806 | 806 |
|
@@ -929,7 +929,7 @@ PyTasklet_Switch_M(PyTaskletObject *task) |
929 | 929 | int |
930 | 930 | PyTasklet_Switch_nr(PyTaskletObject *task) |
931 | 931 | { |
932 | | - slp_try_stackless = 1; |
| 932 | + STACKLESS_PROPOSE_ALL(); |
933 | 933 | return slp_return_wrapper(impl_tasklet_run_remove(task, 1)); |
934 | 934 | } |
935 | 935 |
|
|