Messages in this thread | | | Date | Mon, 31 May 2004 14:45:08 -0400 | From | Russell Leighton <> | Subject | F_SETSIG broken/changed in 2.6 for UDP and TCP sockets? |
| |
I have a program that works fine under stock rh9 (2.4.2-8) but has issues getting signaled under FedoraCore2 (2.6.5-1.358) using SETSIG to a Posix RT signal.
The program does the standard:
/* hook to process */ if ( fcntl(fdcallback->fd, F_SETOWN, mon->handler_q.thread->pid) == -1 ) { aw_log(fdcallback->handler->logger, AW_ERROR_LOG_LEVEL, "cannot set owner on fd (%s)", strerror(errno)); }/* end if */
/* make async */ if ( fcntl(fdcallback->fd, F_SETFL, (O_NONBLOCK | O_ASYNC) ) == -1 ) { aw_log(fdcallback->handler->logger, AW_ERROR_LOG_LEVEL, "cannot set async on fd (%s)", strerror(errno)); }/* end if */
/* hook to signal */ if ( fcntl(fdcallback->fd, F_SETSIG, AW_SIG_FD) == -1 ) { aw_log(fdcallback->handler->logger, AW_ERROR_LOG_LEVEL, "cannot set signal on fd (%s)", strerror(errno)); }/* end if */
Under Fedora things work well for raw sockets (much lower latency than in 2.4!) but are inconsistent with udp or tcp sockets.
In the udp case, I when I listen for multicast packets my app only receives them when I am running a tcpdump (bizarre!).
In the tcp case, I don't get signaled if I do the F_SETSIG on more than 1 fd.
Any tips on tracking this down would be much appreciated.
Thx
Russ
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |