New submission from Mark Shannon <m...@hotpy.org>:

Generators have a "gi_running" attribute (coroutines have an equivalent 
cr_running flag). Internally frame also has an executing flag.

We use these, plus the test `f_stacktop pointer == NULL`, to determine what 
state a generator or frame is in.

It would be much cleaner to maintain a single f_state field in the frame to 
track the state of a frame, reducing the change of ambiguity and error.

The possible states of a frame are:
CREATED -- Frame exists but has not been executed at all
SUSPENDED -- Frame has been executed, and has been suspended by a yield
EXECUTING -- Frame is being executed
RETURNED -- Frame has completed by a RETURN_VALUE instruction
RAISED -- Frame has completed as a result of an exception being raised
CLEARED -- Frame has been cleared, either by explicit call to clear or by the 
GC.

----------
assignee: Mark.Shannon
components: Interpreter Core
messages: 371194
nosy: Mark.Shannon
priority: normal
severity: normal
stage: needs patch
status: open
title: Merge generator.gi_running and frame executing flag into single frame 
state
type: performance

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue40941>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to