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

이성원님의 프로필 이미지
이성원

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동

마무리

Room에서 _objects 자료구조는 안전한가요?

작성

·

293

0

bool Handle_C_LEAVE_GAME(PacketSessionRef& session, Protocol::C_LEAVE_GAME& pkt)
{
	auto gameSession = static_pointer_cast<GameSession>(session);

	PlayerRef player = gameSession->player.load();
	if (player == nullptr)
		return false;

	RoomRef room = player->room.load().lock();
	if (room == nullptr)
		return false;

	room->HandleLeavePlayer(player);

	return true;
}

 

잡큐에서 처리를 한다면 문제가 발생하지 않을거로 보이지만, 잡큐에서 실행하지 않고 room->HandleLeavePlayer 함수를 직접 호출하고 있습니다. _objects 자료구조에 접근하여 제거하는데요 Thread Safe 하지 않을거로 보여서요. 혹시 의도된건지 궁금합니다. 코드 흐름상 이정도는 알아서 수정하세요라는 느낌이 강하지만 혹시나해서 여쭤봅니다.

답변 1

0

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

네 이 부분은 잡큐로 수정해주셔야 합니다.

이성원님의 프로필 이미지
이성원
질문자

강의를 다시 보니, 영상에서 수정하는 모습이 담겨있네요. 최종본에서 어떤 이유로 수정이 이상하게 올라갔는지 모르겠네요. 강의 잘 보고 있습니다. 감사합니다!

이성원님의 프로필 이미지
이성원

작성한 질문수

질문하기