From 6f0c6bd77410ad25ade6a3999c62451ae76ea60a Mon Sep 17 00:00:00 2001
From: Milan Rossa <rossa.milan@gmail.com>
Date: Mon, 5 Aug 2019 15:11:24 +0200
Subject: [PATCH] unix: Enable sys.atexit, triggered after the main script
 ends.

---
 ports/unix/main.c         | 6 ++++++
 ports/unix/mpconfigport.h | 1 +
 2 files changed, 7 insertions(+)

diff --git a/ports/unix/main.c b/ports/unix/main.c
index cd2dc49a5..004d581bb 100644
--- a/ports/unix/main.c
+++ b/ports/unix/main.c
@@ -642,6 +642,12 @@ MP_NOINLINE int main_(int argc, char **argv) {
         }
     }
 
+    #if MICROPY_PY_SYS_ATEXIT
+    if (mp_obj_is_callable(MP_STATE_VM(sys_exitfunc))) {
+        mp_call_function_0(MP_STATE_VM(sys_exitfunc));
+    }
+    #endif
+
     #if MICROPY_PY_MICROPYTHON_MEM_INFO
     if (mp_verbose_flag) {
         mp_micropython_mem_info(0, NULL);
diff --git a/ports/unix/mpconfigport.h b/ports/unix/mpconfigport.h
index 97a9f4908..123cad2bc 100644
--- a/ports/unix/mpconfigport.h
+++ b/ports/unix/mpconfigport.h
@@ -90,6 +90,7 @@
 #define MICROPY_PY_ARRAY_SLICE_ASSIGN (1)
 #define MICROPY_PY_BUILTINS_SLICE_ATTRS (1)
 #define MICROPY_PY_SYS_EXIT         (1)
+#define MICROPY_PY_SYS_ATEXIT       (1)
 #if defined(__APPLE__) && defined(__MACH__)
     #define MICROPY_PY_SYS_PLATFORM  "darwin"
 #else
-- 
GitLab