是否可以在链接到此代码的每个人之间共享一个“上帝”实例,以放置在共享对象中?
god* _god = NULL;
extern "C"
{
int set_log_level(int level)
{
if(_god == NULL) return -1;
_stb->log_level(level);
return 0;
}
int god_init(){
if(_god == NULL){
_god = new god(); //Magic happens here
}
}
}
假设我在每个函数的开头都进行了锁同步,并且考虑到上帝本身可以 new/malloc 其他东西,但那些东西永远不会自己返回给调用者(上帝 malloc 仅供内部使用),什么是最简单的这样做的方式,如果可能的话。
如何将其扩展到链接到此共享库的任意数量的程序?