lkml.org 
[lkml]   [2004]   [May]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectF_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/

\
 
 \ /
  Last update: 2005-03-22 14:03    [W:0.172 / U:0.032 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site