c001cfa603
It is more reliable and scales better when more components need it. Work done in collaboration with Graham Sanderson and Peter Harper. Signed-off-by: Damien George <damien@micropython.org>