因此,根据手册,pselect
可以具有超时参数,如果没有文件描述符更改,它将等待。另外,它还可以通过信号中断:
sigemptyset(&emptyset); /* Signal mask to use during pselect() */
res = pselect(0, NULL, NULL, NULL, NULL, &emptyset);
if (errno == EINTR) printf("Interrupted by signal\n");
然而,从手册哪些信号能够中断pselect?]中不明显]
如果我有线程(生产者和使用者),并且每个(消费者)线程都使用pselect,有没有办法从另一个(生产者)线程中仅中断一个(消费者)线程?
因此,根据手册,pselect可以具有超时参数,如果没有文件描述符更改,它将等待。同样,它也可以被信号打断:sigemptyset(&emptyset); ...
我认为该问题已在https://lwn.net/Articles/176911/