thread - specific storage for c / c + + an object behavioral pattern for accessing per - thread state efficiently .
design patterns : elements of reusable object - oriented software .