No, NDELAY wouldn't help a pipe. Sorry to ask, but are the read/write sides reversed on one end?
> -----Original Message----- > From: Darryl L. Pierce [mailto:[email protected]] > Sent: Tuesday, May 08, 2012 10:03 AM > To: [email protected] > Subject: Re: Strange situation with qpid::sys::Thread and fds > > On Tue, May 08, 2012 at 08:52:32AM -0500, Steve Huston wrote: > > What kind of fd is this? Linux? > > Yes. There's a class named Prong that creates a one-way pipe for sending a > notification to the Ruby thread to wake it up. The pipe is created using the > pipe() API, then fcntl() to make the descriptor non-blocking. > > > The symptom sounds like what would happen if a TCP socket write were > > done and TCP buffered the byte. Setting no-delay on the socket would > > resolve that. > > I tried adding O_NDELAY to the flags for the fds and it made no > difference: > > flags = ::fcntl(yourHandle, F_GETFL); > if((::fcntl(yourHandle, F_SETFL, flags | O_NONBLOCK | O_NDELAY))== -1) > throw MessagingException("Unable to make your handle non-blocking."); > > -- > Darryl L. Pierce, Sr. Software Engineer @ Red Hat, Inc. > Delivering value year after year. > Red Hat ranks #1 in value among software vendors. > http://www.redhat.com/promo/vendor/ --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
