#include "generic.h" #include "thread_local.h" namespace { class TThreadLocalStorage : public NThreading::IGenericLocalStorage { public: TData* GetData() const override { return Data_.Get(); } private: NThreading::TThreadLocalValue Data_; }; NThreading::TGenericLocalStorageFactory genericLocalStorageFactory = []() { return MakeHolder(); }; } namespace NThreading { void SetGenericLocalStorageFactory(TGenericLocalStorageFactory factory) { genericLocalStorageFactory = factory; } THolder MakeGenericLocalStorage() { return genericLocalStorageFactory(); } }