공유 객체에 배치하기 위해이 코드에 링크 된 모든 사람들간에 단일 'god'인스턴스를 공유 할 수 있습니까?C++의 공유 라이브러리 (공유) 내에서 공유 메모리에 객체 생성
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
}
}
}
내가 모든 함수의 시작 부분에 잠금 동기화를 수행 할 것을 제공하고, 하나님 자체를 할 수있는 새로운/malloc에 다른 일을 고려하지만, 그 것은 내부 만 (호출자에게 하나님의 mallocs을 스스로 반환되지 않습니다 사용), 가능한 경우 이것을 수행하는 가장 간단한 방법은 무엇입니까?
어떻게이 공유 라이브러리에 연결된 임의의 수의 프로그램으로 확장 할 수 있습니까?
종종 싱글 톤이라고합니다. – grieve
아니오 - 링크 된 모든 프로세스간에 하나의 인스턴스를 공유하려고합니다. –