Open Namnamseo opened 5 years ago
네, 고려하셔야합니다. 추가로, readlock의 경우 아래와 같이 한 thread가 여러 개의 겹치는 range에 대한 lock을 잡는 경우도 가능해야합니다.
readlock(30, 30) /* 0 to 60 */
readlock(40, 20) /* 20 to 60 */
...
readunlock(40, 20)
readunlock(30, 30)
아래 두 상황처럼 잡은 lock을 일부분만 unlock 하는 경우는 가능한가요?
readlock(30, 30) /* 0 to 60 */
...
readunlock(40, 10) /* 30 to 50 */
readlock(30, 30) /* 0 to 60 */
readlock(40, 20) /* 20 to 60 */
...
readunlock(40, 10) /* 30 to 50 */
전체를 unlock해주셔야 합니다. 즉 lock 잡은 범위와 정확히 같은 범위에 대한 unlock만 고려하시면 됩니다.
한 thread가, 이미 한 range의 lock을 잡은 상태로 (그와 겹치지 않는) 다른 range의 lock을 잡으려고 시도하는 경우가 가능하다고 생각하고 고려해야 하나요?