diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2016-01-29 01:05:53 +0200 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2016-01-29 02:13:42 +0200 |
commit | d3b1f0b627ccc6705d9fe958549badb87a74ded1 (patch) | |
tree | ccc7d03e2f5cd00bb022f70093ca99915715ba42 /qemu-arm/test_main.c | |
parent | 850212203a97754bdaf1844b71c8fe8ee905236f (diff) |
py/runtime: mp_stack_ctrl_init() should be called immediately on startup.
Calling it from mp_init() is too late for some ports (like Unix), and leads
to incomplete stack frame being captured, with following GC issues. So, now
each port should call mp_stack_ctrl_init() on its own, ASAP after startup,
and taking special precautions so it really was called before stack variables
get allocated (because if such variable with a pointer is missed, it may lead
to over-collecting (typical symptom is segfaulting)).
Diffstat (limited to 'qemu-arm/test_main.c')
-rw-r--r-- | qemu-arm/test_main.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/qemu-arm/test_main.c b/qemu-arm/test_main.c index a98e275ce..44f9cc666 100644 --- a/qemu-arm/test_main.c +++ b/qemu-arm/test_main.c @@ -49,6 +49,7 @@ end: int main() { const char a[] = {"sim"}; + mp_stack_ctrl_init(); mp_stack_set_limit(10240); void *heap = malloc(256 * 1024); gc_init(heap, (char*)heap + 256 * 1024); |