TheIntermediateSolution Solutions(envir());
Solutions.activate (THR_NEW_LWP | THR_JOINABLE, POOL_SIZE);
while (!done ())
{
ACE_Message_Block *mb = 0;
ACE_Time_Value tv ((long)MAX_TIMEOUT);
tv += ACE_OS::time (0);
if (this->getq (mb, &tv) < 0)
{
ACE_OS::sleep (0);
}
else
{
if (mb ->msg_type()== ACE_Message_Block::MB_STOP)
{
mb -> release();
ACE_Message_Block *mb = 0;
ACE_NEW_RETURN(mb, ACE_Message_Block(sizeof(int)), -1);
mb ->msg_type(ACE_Message_Block::MB_STOP);
putq (mb);
break ;
}
else
{
Solutions.putq (mb);
}
}
}