728x90 프로그래밍/C언어2 pthread_cond_wait Spurious wakeups 일반적으로 pthread_mutex_lock과 pthread_cond_wait는 다음과 같이 동작한다. ===================== pthread_mutex_lock if (condition) then pthread_cond_wait end if 조건에 따른 내용 처리 pthread_mutex_unlock ====================== 하지만, OS에 따라 pthread_cond_wait 혹은 pthread_cond_timedwait는 비정상적으로 깨어날 수 있다. 이것은 linux man page에도 Spurious wakeups라고 명시되어 있다. 이를 극복하기 위해 다음과 같이 condition check의 if 문을 while문으로 변경하면 된다. ===============.. 2015. 6. 24. C언어에서 bool type 사용법 일반적으로 C언어에서는 primitive로 bool type을 지원하지 않는 것으로 알고 있다. 하지만, C99 표준에 의하면, C에서도 bool type을 지원하고, stdbool.h에 bool type이 포함되어 있다. stdbool.h를 보면, #define bool _Bool 로 정의되어 있다. 실제로 gcc에서 stdbool.h를 include 시키지 않더라도, _Bool을 사용하면 된다. 실제 primitive는 _BOOL인 것이다. 하지만 일반적으로, C++과의 호환을 위해 stdbool.h를 include한 후, 사용한다. 사실 아직도 오래된 코드들을 보면, typedef unsigned char BOOL 과 같은 형태로 구현된 것을 많이 볼 수 있다. 리눅스 6.2를 기준으로, stdbo.. 2013. 9. 11. 이전 1 다음 728x90