py: Implement new sys.atexit feature.

This patch implements a new sys.atexit function which registers a function
that is later executed when the main script ends.  It is configurable via
MICROPY_PY_SYS_ATEXIT, disabled by default.

This is not compliant with CPython, rather it can be used to implement a
CPython compatible "atexit" module if desired (similar to how
sys.print_exception can be used to implement functionality of the
"traceback" module).
This commit is contained in:
Milan Rossa
2019-08-05 15:06:41 +02:00
committed by Damien George
parent 2ccf030fd1
commit cb3647004f
4 changed files with 27 additions and 0 deletions

View File

@@ -149,6 +149,11 @@ typedef struct _mp_state_vm_t {
mp_obj_base_t *cur_exception;
#endif
#if MICROPY_PY_SYS_ATEXIT
// exposed through sys.atexit function
mp_obj_t sys_exitfunc;
#endif
// dictionary for the __main__ module
mp_obj_dict_t dict_main;