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


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


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