Loki の SetLongevity 関数で使用される「pTrackerArray」というグローバル変数があります。
pTrackerArray の宣言:
typedef std::list<LifetimeTracker*> TrackerArray;
extern LOKI_EXPORT TrackerArray* pTrackerArray;
SetLongevity の定義:
template <typename T, typename Destroyer>
void SetLongevity(T* pDynObject, unsigned int longevity, Destroyer d)
{
using namespace Private;
// manage lifetime of stack manually
if(pTrackerArray==0)
pTrackerArray = new TrackerArray;
// For simplicity, the rest of code is omitted
...
}
SetLongevity で pTrackerArray をそのまま使用するのはスレッドセーフですか?