AutoMutex _l(gDefaultServiceManagerLock);
if(NULL == gDefaultServiceManager ){ // 1,判断语句,常亮放在左侧,避免误写为赋值语句,可以报警
gDefaultServiceManager = interface_cast<IServiceManager>(
ProcessState::self()->getContextObject(NULL));
}
while 替换 if 后效果
AutoMutex _l(gDefaultServiceManagerLock);
while(NULL == gDefaultServiceManager ){ // 2,使用while,获取失败后,再尝试获取
gDefaultServiceManager = interface_cast<IServiceManager>(
ProcessState::self()->getContextObject(NULL));
if(NULL == gDefaultServiceManager){ // 3,不要省略括号,虽然只有一条语句。
sleep(1);
}
}