当前位置:  技术问答>linux和unix

关于poll()的唤醒问题

    来源: 互联网  发布时间:2017-03-23

    本文导语:  本帖最后由 allen_4167 于 2012-11-21 16:19:22 编辑 我在应用中poll()监听了一组fd的读变化,现在需要在fd集没有可读数据的情况下,在另一个线程中随时把这个阻塞状态中的poll()唤醒,请问有办法么?? 一般这种情况下的程...

本帖最后由 allen_4167 于 2012-11-21 16:19:22 编辑
我在应用中poll()监听了一组fd的读变化,现在需要在fd集没有可读数据的情况下,在另一个线程中随时把这个阻塞状态中的poll()唤醒,请问有办法么??
一般这种情况下的程序应该如何设计?

谢谢~

|

#include 
#include 
#include 
#include 

#include 

void  sigusr1(int sig)
{
}

void *poller(void *arg)
{
    int ret;

    struct sigaction act;
    struct pollfd fds[1];

    act.sa_handler = sigusr1;
    sigemptyset(&act.sa_mask);
    act.sa_flags = 0;
#ifdef SA_INTERRUPT
    act.sa_flags |= SA_INTERRUPT;
#endif
    sigaction(SIGUSR1, &act, NULL);

    fds[0].fd = STDIN_FILENO;
    fds[0].events = POLLIN;
    fds[0].revents = 0;

    ret = poll(fds, 1, -1);

    if (ret 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.util类linkedlist<e>的类成员方法: poll定义及介绍
  • 哪位能详细介绍一下poll的用法,感觉man poll说得不够清晰
  • java命名空间java.util接口queue<e>的类成员方法: poll定义及介绍
  • 应用层获得SIGIO信号如何区分是kill_fasync(poll_in)或kill_fasync(poll_out)产生的
  • java命名空间java.util类priorityqueue<e>的类成员方法: poll定义及介绍
  • tuxedo客户端调用的tpacall返回的fd是否支持poll?
  • java命名空间java.util类arraydeque<e>的类成员方法: poll定义及介绍
  • 如何让poll函数永久阻塞
  • java命名空间java.util.concurrent类priorityblockingqueue<e>的类成员方法: poll定义及介绍
  • poll_wait无法阻塞是什么原因造成的?
  • java命名空间java.util.concurrent类concurrentlinkedqueue<e>的类成员方法: poll定义及介绍
  • 怎么用poll检查设备是否有数据?还有fsync怎么用?
  • java命名空间java.util接口deque<e>的类成员方法: poll定义及介绍
  • Ajax投票程序 Ajax Poll
  • java命名空间java.util.concurrent接口blockingdeque<e>的类成员方法: poll定义及介绍
  • poll为什么不返回?
  • java命名空间java.util.concurrent接口completionservice<v>的类成员方法: poll定义及介绍
  • 中断和polling的区别?
  • java命名空间java.util.concurrent类synchronousqueue<e>的类成员方法: poll定义及介绍
  • 请教高人来解释一下小弟关于poll()函数的疑惑
  • java命名空间java.util.concurrent类delayqueue<eextendsdelayed>的类成员方法: poll定义及介绍
  • @@请教poll模式和select中的FD_SETSIZE


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3