andromedarabbit / earlgrey

High performance online gaming server engine.
2 stars 1 forks source link

AppType 의 근본적인 문제점? #26

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
enum AppType::E_Type
{
    E_APPTYPE_NONE = 0
    , E_APPTYPE_DEFAULT
};

현재는 이렇게 선언해놨습니다. 

이 값을 쓰는 곳 중 하나는 응용프로그램 인스턴스가 벌써 
떠 있는 확인하는 코드입니다. 

class SingleAppInstance{
  BOOL IsRunning(const TCHAR * appName);
  BOOL IsRunning(AppType::E_Type appType);
};

그런데 E_APPTYPE_DEFAULT 값은 기본 값이라고 주어진 건데 이 
값을 쓰는 응용프로그
램이 이미 있으면 응용프로그램 초기화 부분에서 걸려 죽게 
됩니다. 

BOOL AppInitializer::CheckAppInstance(AppType::E_Type appType)
{
    if( gSingleInstance::Instance().IsRunning(appType) )
    {
        this->m_CurrentAppType = appType;
        return TRUE;
    }
}

기본 값일 때는 인스턴스 개수를 확인하지 않게 하거나 
아예 기본 값 자체를 없애야 할 것 
같습니다.

Original issue reported on code.google.com by kaistizen on 2 Nov 2009 at 6:31