- 论坛徽章:
- 0
|
程序的代码如下:
main()
{
……
buildSigHandle();
setTimer(1000);
……
}
void setTimer(int MillSecond)
{
struct itimerval oldtime;
struct itimerval newtime;
int second = MillSecond/1000;
int micron = (MillSecond%1000)*1000; //微秒
newtime.it_interval.tv_sec = second;
newtime.it_interval.tv_usec = micron;
newtime.it_value.tv_sec = second;
newtime.it_value.tv_usec = micron;
setitimer(ITIMER_REAL, &newtime, &oldtime);
}
void buildSigHandle()
{
struct sigaction new_sigalarm;
new_sigalarm.sa_handler = TimerHandler;
sigemptyset(&new_sigalarm.sa_mask);
new_sigalarm.sa_flags = 0;
new_sigalarm.sa_flags |= SA_RESTART;
sigaction(SIGALRM, &new_sigalarm,NULL);
}
另外在程序中还有一个线程阻塞在socket上进行侦听。结果发现在运行以后,当定时器触发时,阻塞的accept函数会出错返回。这是怎么回事??
请高手们不吝赐教。多谢了! |
|