poll函数永远阻塞之后能够手动使之返回吗,就像win系统中的WaitForSingleObjec(hEvent.) 我可以通过 SetEvent(hEvent)来让wait返回.

wd_6532 2005-01-26 08:23:36
可以吗?

如果不可以,那linux可太没有windows考虑的周全了.这就是差别所在.
...全文
126 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wd_6532 2005-01-31
  • 打赏
  • 举报
回复
多谢,峡谷.

补充一下,发送给进程的信号,进程创建的线程是不能确定的收到的,需要用pthread_kill
wd_6532 2005-01-28
  • 打赏
  • 举报
回复
up
datuhao 2005-01-27
  • 打赏
  • 举报
回复
在linux下,当进程捕捉到信号时,一些阻塞的系统调用会立刻返回的
datuhao 2005-01-27
  • 打赏
  • 举报
回复
当然可以,poll的的阻塞可以通过信号来随时返回,和windows下ResetEvent的效果是一样的。
wd_6532 2005-01-27
  • 打赏
  • 举报
回复
up
wd_6532 2005-01-27
  • 打赏
  • 举报
回复
我对linux不熟.
我只有一个进程,用多线程.
能不能详细说一下,我应该给自己进程发送什么信号,怎么发送
是不是那些阻塞的系统调用都会返回,是不是都得重新启动这些系统调用.

有没有对应得源代码让我参照一下.
谢谢 峡谷.
wd_6532 2005-01-26
  • 打赏
  • 举报
回复
人气无啊
wd_6532 2005-01-26
  • 打赏
  • 举报
回复
举例:
windows上

Index=WSAWaitForMultipleEvents(m_iSocketCount,m_EventArray,FALSE,WSA_INFINITE,FALSE);

m_EventArray[x]是一个和socket关联的事件,
如果socketarray[5]有事件,则m_EventArray[5]被激活,WSAWaitForMultipleEvents从阻塞中返回

如果网络没有事件,我也可以ResetEvent(m_EventArray[5]) 使之从阻塞中返回.

pollfd.events也有事件,怎么用程序触发这个事件,让阻塞中的poll函数返回????

23,223

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧