I am running a simple script to stress test my code.
Code: Select all
i = 0
while i<100:
#print heap stats here
j = [1]*i*100
i+=1
Used: 992 Free: 31520 T
Used: 1280 Free: 31232
Used: 2304 Free: 30208
Used: 4128 Free: 28384
Used: 6752 Free: 25760
Used: 10176 Free: 22336
Used: 14432 Free: 18080
Used: 19488 Free: 13024
Used: 25344 Free: 7168
Used: 32000 Free: 512
Used: 14496 Free: 18016
Used: 22784 Free: 9728
Used: 17696 Free: 14816
Used: 10464 Free: 22048
Used: 21184 Free: 11328
To me, this shows that the heap is overflowing after the 10th iteration. Is there a reason MP isn't catching this and throwing an exception?
The way my code sets up the heap is
Code: Select all
mp_stack_set_top(stack_top);
gc_init(heap, heap + sizeof(heap));
mp_init();