락만 뮤텍스로 바꿨을뿐인데 프로그램이 죽습니다
409
작성한 질문수 33
락 부분이 좀 어려워 흔히 쓰는 뮤텍스 방식으로 수정해보았습니다. 사진은 하나만 넣었지만 WRITE_LOCK을 쓰는 모든 부분을 위와같이 수정했습니다.
하지만
위와 같은 에러가 나오는걸로 보아 멀티쓰레드 동기화 문제로 보입니다.
혹시 선생님이 쓰신 락이랑 뮤텍스 기반 락이랑 어떻게 다르기에 평범한 락으로 바꿨더니 프로그램이 죽는걸까요?
(혹시 안보이시면 우클릭 -> 새 탭에서 이미지 열기 해주시면 잘보일거에요)
답변 1
1
재귀적인 락 Recursive Lock 허용 여부입니다.
락을 잡은 상태에서, 동일한 쓰레드가 또 락을 잡아도 되느냐?~에서
우리가 만든 LOCK 코드에서는 이를 허용해줬습니다.
하지만 표준 mutex는 재귀적인 락을 허용하지 않습니다.
이렇게 테스트하면 동일한 에러가 나는 것을 확인할 수 있습니다.
재귀적인 락 관련해서는 얼마전 C# 강의에서 유사한 질문이 있었는데 아래 링크 참고 바랍니다.
|
https://www.inflearn.com/questions/547752?re_comment_id=191276
IocpObject가 없어질 수 있는 이유에 대한 질문입니다.
0
16
2
CS 기초 지식이 필요없는 세상이 오지 않을까요?
0
128
2
DeadLock 탐지에서 재귀 Lock 상황에 대해 궁금합니다.
0
89
2
LockFreeStack #2에서 ABA 문제
0
62
1
RefCounting 강의 질문있습니다.
0
85
2
writeLock을 잡을때 꼭 empty 상태여야하는 이유?
0
101
2
Memory Pool에서 오버플로우 질문입니다.
0
117
2
포토폴리오 및 진로 관련하여 고민입니다.
0
225
1
포토폴리오 관련 고민입니다.
0
128
1
실무에서도 alloc, 스마트포인터 등을 구현해서 쓰는지 궁금합니다.
0
136
2
성능 테스트 결과
0
138
2
게임 서버 Stateful, Stateless 진로 고민
0
177
1
WaitOnAddress와 Sleep의 차이 질문
0
130
1
궁금한거 있습니다.
0
118
2
JobTimer 구동 스레드
0
146
2
TryPop() 동작 관련 질문
0
109
1
로드맵 C#서버 C++서버 방향성 질문
0
200
2
스레드 id를 출력할떄 메인스레드 id도 출력되나요?
0
96
1
생명주기를 위한 의도적 복사
0
120
2
락프리의 실무에서 사용 질문
0
189
2
32bit threadID와 16비트 상위 WriteFlag에 대해
0
131
2
mutex와 sleep 차이점
0
152
1
실무에서는 어떠한 코드 스타일을 사용하는지 궁금합니다
0
195
2
Stomp Allocator의 Release함수에 대한 질문입니다.
0
123
1





