_popCount에 관한 질문입니다.
해결됨
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
지금 해당 코드에 대해서 4번째 의심하고있는 학생입니다. 찾아보니 유사한 질문이 있음에도 이해가 되질 않아 먼저 해당 글부터 링크 걸어두겠습니다. https://www.inflearn.com/questions/365349 _pendingList와 _popCount를 atomic으로 선언해서 사용하고 있는 상황인데 if (_popCount == 1) { // 여기부터 Node* node = _pendingList.exchange(nullptr); // 이 사이에 if (--_popCount == 0) { DeleteNode(node); } else if (node) { ChainPendingNodeList(node); } delete oldHead; 저 주석 사이에 둘 이상의 스레드가 동시에 접근 할 수 있는 건가요? 그리고 접근 할 수 있어도, 혹은 다른 함수에서(ChainPendingNodeList) _pendingList에 접근을 시도해도 exchange 연산을 통해 분리해내는데 둘 이상의 스레드가 동시에 같은 포인터를 잡고있는 상황이 있을 수 있나요?
- atomic
- network
- LockFreeStack
- windows-server
- MMORPG
장인석
댓글 1
좋아요 0
조회수 459





