🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

락만 뮤텍스로 바꿨을뿐인데 프로그램이 죽습니다

22.05.31 00:21 작성 조회수 253

0

락 부분이 좀 어려워 흔히 쓰는 뮤텍스 방식으로 수정해보았습니다. 사진은 하나만 넣었지만 WRITE_LOCK을 쓰는 모든 부분을 위와같이 수정했습니다. 

 

하지만

위와 같은 에러가 나오는걸로 보아 멀티쓰레드 동기화 문제로 보입니다. 

혹시 선생님이 쓰신 락이랑 뮤텍스 기반 락이랑 어떻게 다르기에 평범한 락으로 바꿨더니 프로그램이 죽는걸까요?

(혹시 안보이시면 우클릭 -> 새 탭에서 이미지 열기 해주시면 잘보일거에요)

답변 1

답변을 작성해보세요.

1

재귀적인 락 Recursive Lock 허용 여부입니다.
락을 잡은 상태에서, 동일한 쓰레드가 또 락을 잡아도 되느냐?~에서
우리가 만든 LOCK 코드에서는 이를 허용해줬습니다.

하지만 표준 mutex는 재귀적인 락을 허용하지 않습니다.

이렇게 테스트하면 동일한 에러가 나는 것을 확인할 수 있습니다.
재귀적인 락 관련해서는 얼마전 C# 강의에서 유사한 질문이 있었는데 아래 링크 참고 바랍니다.
|
https://www.inflearn.com/questions/547752?re_comment_id=191276

채널톡 아이콘