(file) Return to MessageQueueService.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Common

Diff for /pegasus/src/Pegasus/Common/MessageQueueService.cpp between version 1.144 and 1.145

version 1.144, 2008/09/17 05:57:05 version 1.145, 2008/09/17 18:47:22
Line 272 
Line 272 
             _thread_pool = 0;             _thread_pool = 0;
         }         }
     } // mutex unlocks here     } // mutex unlocks here
     // Clean up in case there are extra stuff on the queue.  
     while (_incoming.count())      // Clean up any extra stuff on the queue.
     {      AsyncOpNode* op = 0;
         try      while ((op = _incoming.dequeue()))
         {  
             delete _incoming.dequeue();  
         }  
         catch (const ListClosed&)  
         {         {
             // If the list is closed, there is nothing we can do.          delete op;
             break;  
         }  
     }     }
 } }
  
Line 309 
Line 303 
  
     msg->op->_op_dest = this;     msg->op->_op_dest = this;
     msg->op->_request.reset(msg);     msg->op->_request.reset(msg);
     try      if (_incoming.enqueue(msg->op))
     {     {
         _incoming.enqueue(msg->op);  
         _polling_sem.signal();         _polling_sem.signal();
     }     }
     catch (const ListClosed&)      else
     {     {
         // This means the queue has already been shut-down (happens  when there         // This means the queue has already been shut-down (happens  when there
         // are two AsyncIoctrl::IO_CLOSE messages generated and one got first         // are two AsyncIoctrl::IO_CLOSE messages generated and one got first
Line 354 
Line 347 
         // many operations may have been queued.         // many operations may have been queued.
         do         do
         {         {
             try  
             {  
                 operation = service->_incoming.dequeue();                 operation = service->_incoming.dequeue();
             }  
             catch (ListClosed&)  
             {  
                 // ATTN: This appears to be a common loop exit path.  
                 //PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL2,  
                 //    "Caught ListClosed exception.  Exiting _req_proc.");  
                 break;  
             }  
  
             if (operation)             if (operation)
             {             {
Line 657 
Line 640 
     if ((rq != 0 && (true == messageOK(rq))) ||     if ((rq != 0 && (true == messageOK(rq))) ||
         (rp != 0 && (true == messageOK(rp))) && _die.get() == 0)         (rp != 0 && (true == messageOK(rp))) && _die.get() == 0)
     {     {
         _incoming.enqueue(op);          if (_incoming.enqueue(op))
           {
         _polling_sem.signal();         _polling_sem.signal();
         return true;         return true;
     }     }
       }
     return false;     return false;
 } }
  


Legend:
Removed from v.1.144  
changed lines
  Added in v.1.145

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2