[Ace-users] putq does not block (returns -1) when message queue is full when using ACE_NULL_SYNCH strategy.

hongxing777 at gmail.com hongxing777 at gmail.com
Sun Jun 24 09:29:13 CDT 2007


Version: 5.5.8
host: windows xp sp2, suse linux enterprise server 9 sp2
compiler: vs.net 2003, gcc 3.3.3

In my task derived class, I use ACE_NULL_SYNCH strategy:
class MyTest : public ACE_Task<ACE_NULL_SYNCH>
{
...
}

because there are some variables of MyTest which all need to be
protected, I use a mutex to
protect these variables and the message queue. So I use the NULL
protect strategy.
But when I call putq(pmb) of MyTest and when the message queue is
full, this function should be blocked, but it returns -1 with
errno=EWOULDBLOCK.

thanks!



More information about the Ace-users mailing list