foo::getInstance()
{
    static foo* instance = 0;
    if (instance == 0)
    {
        instance = new foo();  // new a foo object
    }
    return instance;
}

上面的代码, 运行时发现 new foo() 执行了两遍,可能的原因是?