condition_variable 조건변수 주의점

C++의 condition_variable을 보게되면 아래의 코드가 나오는데 매번 cv.wait가  신경이 쓰였다. 일단 아래의 코드를 보자 논리적으로 보면 cv.wait의 두번째 인자가 있는이유가 딱히 없다는걸 알수있다. 헌데 왜 이코드가 들어갈까 이는 해당문서를 자세히 보면 알수있다. 위에 잘보면 이는 spurious wekeup라는 문서가 있을것이다.  이게 위키피디아에도 있는데 해당 문서를 잘보면 모든 OS에서 발생한다고 한다. https://en.wikipedia.org/wiki/Spurious_wakeup  깨우지않았는에도 더보기…

Redis 코드 삽질기(1)

이글은 redis 코드에 기여하기위해 간단한 리뷰이다.  시작시 initServer함수에서 코드의 일부분이다. 잘보면 ServerCron을 1초마다 실행시킨다.  해당 함수를 잘보면 서버가 동시접속과 리플리케이션 함수를 볼 수있게 구현이 된걸 볼수있다. ServerLog라는 함수가 있다. 이 함수는 redis의 자체적인 로그함수로 각각의 레벨이 존재한다.  이를 LL_NOTICE로 바꾸고 실행시켜보면 아래와 같이 출력된다. 참고로 listLength함수는 양방향 리스트 구조체의 길이를 더보기…