This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: 1.7.8: mq_timedreceive() blocks, mq_receive() with O_NONBLOCK blocks, too


Hi Corinna,

thanks for the quick fix, I tested both mq_timedreceive and mq_timedsend and they are working as expected.

Sorry for the false alarm though, I overlooked that those are two parameters.
This should be the correct call:
  msgQueue = mq_open(QUEUE_NAME,
                     O_RDWR | O_CREAT | O_EXCL | O_NONBLOCK,
                     S_IRWXU | S_IRWXG,
                     &attrQueue);

Since I always try to eliminate any influence from my project and to track down the source of the problem, a test case usually comes natural.

Manuel

> -----Original Message-----
> From: Corinna Vinschen
> Sent: Thursday, March 03, 2011 5:32 PM
> 
> On Mar  3 12:13, Corinna Vinschen wrote:
> > On Mar  3 10:57, Manuel Wienand wrote:
> > > Hi,
> > >
> > > I have a problem with the mqueues.
> > > If I use mq_timedreceive() and do not set O_NONBLOCK,
> mq_timedreceive() blocks forever and eats 100% of one cpu core.
> > > If I use mq_receive() and set O_NONBLOCK, mq_receive() blocks
> forever (0% cpu).
> >
> > Thanks for the testcase!  I can reproduce it.  I'm a bit out of
> > spare time right now, but I think I'll have a fix soon.  Stay tuned.
> 
> Ok, I applied a patch to fix the mq_timedreceive problem.  mq_timedsend
> was affected by this problem as well.  I'm just generating a new
> developer snapshot for testing.
> 
> The other problem is a PEBKAC, though.  Here's the open call from your
> testcase, which you used to reproduce the mq_receive block if
> O_NONBLOCK
> is given.  For clearness, I split the arguments into multiple lines:
> 
>   msgQueue = mq_open(QUEUE_NAME,
>                      O_RDWR | O_CREAT | O_EXCL,
>                      S_IRWXU | S_IRWXG | O_NONBLOCK,
>                      &attrQueue);
> 
> Do you see the problem?
> 
> Anyway, in the meantime the new snapshot has been uploaded.  Please try
> the latest developer snapshot from http://cygwin.com/snapshots/
> 
> Thanks again for the testcase.  Debugging and fixing bugs is a lot more
> fun with those.
> 
> 
> Corinna
> 
> --
> Corinna Vinschen                  Please, send mails regarding Cygwin
> to
> Cygwin Project Co-Leader          cygwin AT cygwin DOT com
> Red Hat
> 
> --
> Problem reports:       http://cygwin.com/problems.html
> FAQ:                   http://cygwin.com/faq/
> Documentation:         http://cygwin.com/docs.html
> Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
> 
> 
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]