【发布时间】:2013-09-10 03:50:54
【问题描述】:
假设我有一个从多个进程或线程多次打开的 fifo(命名管道)。它们都将调用 select() 进行并发读取。如果一个 writer 进来并写入,比如说一个字节到这个 fifo,所有阻塞的 select() 调用会同时返回,还是只会选择一个线程并从 select() 返回?
对此是否有任何规范,或者这是否取决于系统?
我问的原因是我想使用 fifos 实现类似 Windows 的手动重置事件。手动重置事件要求当事件发出信号时,所有等待的线程都将被释放(而不是自动重置事件只有一个)。
我可以为此使用 pthread conds,但我的要求是多个进程共享事件。
谢谢。
【问题讨论】:
标签: c unix concurrency named-pipes manualresetevent