This requires the user to explicitly manage the storage duration/place of the thread local state, making a fine grained memory allocation simpler.