diff options
author | Damien George <damien.p.george@gmail.com> | 2018-05-31 23:10:48 +1000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2018-06-12 11:55:29 +1000 |
commit | 522ea80f06a80fd799bd57de351373ceaeeae325 (patch) | |
tree | a0759e8d15d1643cc930c523b5fb4b5aeed7aad7 /py/gc.h | |
parent | 8fb95d652066b38e0dbb4fa5433de49eb601bdfe (diff) |
py/gc: Add gc_sweep_all() function to run all remaining finalisers.
This patch adds the gc_sweep_all() function which does a garbage collection
without tracing any root pointers, so frees all the memory, and most
importantly runs any remaining finalisers.
This helps primarily for soft reset: it will close any open files, any open
sockets, and help to get the system back to a clean state upon soft reset.
Diffstat (limited to 'py/gc.h')
-rw-r--r-- | py/gc.h | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -45,6 +45,9 @@ void gc_collect_start(void); void gc_collect_root(void **ptrs, size_t len); void gc_collect_end(void); +// Use this function to sweep the whole heap and run all finalisers +void gc_sweep_all(void); + void *gc_alloc(size_t n_bytes, bool has_finaliser); void gc_free(void *ptr); // does not call finaliser size_t gc_nbytes(const void *ptr); |