인프런 커뮤니티 질문&답변

seekchange님의 프로필 이미지

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

Session #1

Session의 수명 관리를 위한 Ref 카운트 관리 부분

해결된 질문

24.06.12 11:31 작성

·

155

0

안녕하세요. 수업 잘 듣고 있습니다. 감사합니다.

 

Session 수업 부분에서

Register함수들에서 owner = shared_from_this(); 를

Process함수들에서 owner = nullptr 를 해주는 방식을.

한 군데에서 관리하는게 좋지않을까 하는 생각이 들었습니다.

Session이 생성될 때 Init함수 같은 것을 하나 둬서

멤버 변수로 들고 있는 각Event들의 owner에

shared_from_this()를 넣어주고

(계속 들고 있는 상태로 유지)

나중에 문제가 생겨서 Disconnect()를 호출해야 할 때,

ProcessDisconnect함수와 소멸자 같은 부분에서

nullptr로 밀어주는 식으로 한다면

 

비동기 함수에 걸어놓는 동안 session의 생명은 계속 유지가

될 것 같고, 매번 참조횟수를 늘렸다 줄였다 하지 않아도

되니 괜찮을 것 같다 생각했는데요.

혹시 제가 잘못 생각하고 있거나

미처 생각을 못한 부분이 있을까요?

 

 

 

 

 

 

 

 

 

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

2024. 06. 12. 13:08

네 실제로 저 부분은 굳이 표준 shared_ptr을 이용하지 않고
자체 refCount를 이용해 네트워크 부분만 따로 처리하는 경우도 있고 다양하니
정말 생각나는 모든 방법을 다 구현해보세요 (거기서 뭔가 문제가 생기면.. 그것도 그거대로 경험치랍니다)