sem_timedwait 会被signal的信号唤醒及处理办法
来源:互联网 发布:linux文件指针file 编辑:程序博客网 时间:2024/06/06 02:13
一直都在使用sem_timedwait 函数用来处理超时等待应答.但是突然发现 没有收到应答.竟然返回了.查了半天竟然是signal(SIGALRM, ....)的原因.man 了一下 sem_timedwait
RETURN VALUE
All of these functions return 0 on success; on error, the value of the
semaphore is left unchanged, -1 is returned, and errno is set to indi‐
cate the error.
ERRORS
EINTR The call was interrupted by a signal handler; see signal(7).这里说了.确实会被唤醒.没办法只能该程序忽略这个信号
int _wait_sem( int sec, char *pack_str_t){ struct timespec ts; int sts;sem_t *wSem;wSem = &jf2414_acksem;p_ack_str = pack_str_t; ts.tv_sec = time(0) + sec; //important ts.tv_nsec = 0; /* Try to lock Semaphore */ sem_init (wSem, 0, 0);//set sem is 0while ( 1 ){ sts = sem_timedwait(wSem, &ts); if(sts == 0){ printf("rec ack\n"); sem_destroy(wSem); return 0; } else{if(errno == ETIMEDOUT){printf("sem timout\n");sem_destroy(wSem);return -1;}//else if(errno == EINTR)//{//continue;//忽略其它signal信号//}}}}
0 0
- sem_timedwait 会被signal的信号唤醒及处理办法
- sleep会被其它信号(SIGALRM,SIGINT)唤醒的测试
- php的信号(signal)处理
- signal 11信号的处理
- signal()设置信号的处理
- Linux信号(signal)----信号产生的条件及信号的处理
- Linux Signal及Golang中的信号处理
- Linux Signal及Golang中的信号处理
- 信号处理函数signal的使用
- 信号处理:signal和sigaction的区别
- signal 信号处理的一系列操作总结
- Linux信号(Signal)处理
- 信号处理函数 signal
- Signal信号处理
- Linux 信号处理signal
- signal信号处理机制
- Linux的signal信号处理;好多信号还没看呢
- Linux信号signal处理机制
- Storm入门教程:前言
- Win7x64下TortoiseSVN中patch后出现中文乱码的解决
- JAVA Properties使用
- 大数据量下高并发同步的讲解(不看,保证你后悔)
- Storm入门教程:安装部署步骤详解(1)
- sem_timedwait 会被signal的信号唤醒及处理办法
- python 定制类
- javascript标准对象与包装对象
- Address already in use: JVM_Bind:8080解决方案
- form表单提交
- HDU2102 A计划(三维BFS)
- 关于音频播放使用setDataSource(String path)遇到的问题
- 如何根据内存数据生成位图
- xilinx时序约束