삽질미학/C,C++
sleep 을 이용한 타이머 모듈 - RoughTimer
상사꽃
2017. 6. 22. 16:07
제목 : Rough Timer
언어 : C, C++
OS : Ubuntu 14.04
컴파일러 : gcc, g++
라이센스 : 누구나, 어디서나 쓸 수 있습니다. (누가 쓰겠냐마는...)
usleep() 함수를 이용해 타이머를 만들어 보았다. (첨부파일 참조)
예를 들어 2초짜리 타이머를 등록하면,
쓰레드에서 100ms 마다 1씩 카운트하여 2초가 됐을 때 콜백함수를 호출하는 방식이다.
고로, 정확도는 떨어지며 100ms 이하 타이머는 사용할 수 없다.
정확도 보다도 "약 몇초 후에" 식으로 운영되는 타이머라면 심플하게 쓸 수 있을 것이다.
이에 Rough Timer 로 명명하였다.
C++ 코드는 STL List 를 사용하였고,
C 코드는 간단히 linked-list 함수를 만들어 사용하였다.
코드 안에 main() 함수에서 간단한 테스트 코드를 볼 수 있다.
(주의사항 : 타이머 발동 시, 호출되는 콜백함수는 최대한 빨리 빠져나와야 한다.
그렇지 않으면 전체 타이머 시간과 다른 타이머에 영향을 준다.)