About ActorCell.contextStack

When I read the akka source code, I found out that the variable type of ActorCell.contextStack is ThreadLocal[List[ActorContext]]. Why is it not just an ActorContext but a List?
If it was a ThreadLocal[ActorContext],what will happen?

Please do not post the same question immediately to multiple channels, it is confusing and not quite polite…

This was answered on gitter:

Konrad ktoso Malawski @ktoso 19:52
the threadlocal is only ever hit once
it is optimized, don’t worry
it is to allow context usage in constructor body
there is no way to set it otherwise, since that would be AFTER constructor has run

gabry.wu @gabrywu 19:53
but why a List

Konrad ktoso Malawski @ktoso 19:54
meh, that i dont remember, sure there’s reasons ;-)
most cases that’d be a single element tho
why looking into there? ;-)