Condition Variable 에서의 lock 문제
미해결
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
안녕하세요 Rookiss 님 좋은 강의 감사합니다. 다름이 아닌 condition variable 에서 producer ( ) 코드 에서 { { unique_lock<mutex> guard(m); q.push(100); } //생략 } 이렇게 unique_lock 을 걸어주게 되고, Consumer 측에서는 { while (true) { unique_lock<mutex> lock(m); // 생략 } } 여기서 궁금한게, thread1(producer) , thread2(consumer) 시, thread1 에서 mutex m 을 unique_lock 으로 잠가주게 되고, thread2 에서 mutex m 을 또 unique_lock 으로 잠가주게 되어, 재귀적으로 lock 이 일어나게 되는데, 왜 오류가 일어나지 않는지 궁금합니다. ps ) unique_lock 으로 인자를 주어, 처음부터 lock을 안걸어줄 수도 있는데, 그냥 mutex m 만 인자로 넘길시 , 바로 생성자에서 lock 을 걸어버린다고 찾아보았습니다. 헌데, 여기서는 재귀 lock 이 일어난것 처럼 보여서, 제가 잘 이해하지 못한 부분이 있는지 여쭤봅니다.
- cv
- network
- conditionvaraible
- windows-server
- MMORPG
박상인
댓글 1
좋아요 0
조회수 272





