Ask Your Question
0

ObjectNoLockException 발생합니다. (2016-03-15 fatmoon)

asked 2016-11-30 16:52:32 +0900

inkeun.kim gravatar image

안녕하세요 스마트조이입니다. Object Subsystem 을 이용하여 게임 오브젝트를 이용할려고 합니다.루프를 돌며 복수의 게임 오브젝트를 생성하고 있는 중에 ObjectNoLockException이 발생합니다. 위에 경우는 어떤 경우에 발생하는 예외인지 알려주시면 감사하겠습니다.

감사합니다

edit retag flag offensive close merge delete

1 answer

Sort by » oldest newest most voted
0

answered 2016-11-30 16:54:35 +0900

inkeun.kim gravatar image

updated 2016-11-30 16:55:05 +0900

Answer by seunghyun · 2016-03-15 PM 01:04

다음과 같은 경우가 있습니다.

  1. Fetch 하지 않은 Object 에 접근 할 때

     Ptr<MyObject> g_my_object;void OnTest1(...) {
     g_my_object = MyObject::Fetch(...) // or Create(...)
    }
    void OnTest2(...) {
    g_my_object->GetXXX(); // or SetXXX(..) <-- ObjectNoLockException 발생합니다.
    
    // Fetch 또는 Create 한 Object 는 해당 Event 안에서만 유효합니다.
    // 아래처럼 Refresh() 함수를 부르거나 다시 Fetch 해야 합니다.
    
    // 아래처럼 수정합니다.
    g_my_object->Refresh(); // 롤백이 발생될 수 있습니다.
    
    // 또는 아래 처럼 수정합니다.
    Ptr<MyObject> object = MyObject::Fetch(g_my_object_id); // id 만 저장하고 Fetch 합니다.
    
    object->GetXXX(); // OK
    
    }
    
  2. Read 로 Fetch 하고 Write 한 경우

    Ptr<MyObject> object = MyObject::Fetch(..., kReadLock /* or kReadCopyNoLock);
    
    object->SetXXX(...); // ObjectNoLockException 발생합니다.
    

kReadLock 을 kWriteLock 또는 생략합니다.(기본 인자로 kWriteLock 이 전달됩니다.) 혹시 위 두 경우가 아닌지요?

edit flag offensive delete link more

Comments

Answer by fatmoon · 2016-03-16 AM 01:40

빠른 답변 감사합니다. 즐거운하루 되세요.

inkeun.kim gravatar imageinkeun.kim ( 2016-11-30 16:55:16 +0900 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2016-11-30 16:52:32 +0900

Seen: 16 times

Last updated: Nov 30 '16