seems that GC frees list of active threads and then core.thread uses it. sure, i missed some call that should anchor that list. sorry for making chat here, but i have no other place to discuss such things.