• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

WriteUnlock 질문이 있습니다

22.03.15 14:44 작성 조회수 144

0

24분 10초경에 

int lockCount = --_writeCount; << 를 두개의 쓰레드가

동시에 unlock하게 되어서 lockCount 값이 0을 갖지 못하고,

_flag가 EMPTY_FLAG로 영영 못바뀌는 경우는 없는걸까요??

답변 1

답변을 작성해보세요.

1

WRITE_LOCK은 상호배타적이라, 동시에 2개의 쓰레드가 writeLock을 잡을 수 없습니다.
따라서 WriteUnlock도 동시에 2개의 쓰레드가 실행할 수 없습니다.

no6614163님의 프로필

no6614163

질문자

2022.03.15

아 Spinlock을 써서 상호배타적이게 만들어 놓고도 재귀적락을 허용한다는 부분에서 혼동했네요.

재귀적 락을 허용한다는게 동일 쓰레드에서 writeLock을 허용한다는 의미였는데 놓쳤습니다.

답변감사합니다.

어려운 부분인데 잘 이해하셨네요 :)