(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.43 and 1.44

version 1.43, 2002/04/25 17:46:03 version 1.44, 2002/04/30 21:55:12
Line 196 
Line 196 
  
    while ( service->_die.value() == 0 )    while ( service->_die.value() == 0 )
    {    {
       if(service->_incoming.count() > 0 )  
       {  
          try          try
          {          {
             operation = service->_incoming.remove_first();              operation = service->_incoming.remove_first_wait();
          }          }
          catch(ListClosed & )          catch(ListClosed & )
          {          {
Line 213 
Line 211 
             service->_handle_incoming_operation(operation);             service->_handle_incoming_operation(operation);
          }          }
       }       }
        if( service->_callback.count() > 0 )  
       {  
          service->_callback.lock();  
          operation = service->_callback.next(0);  
          while( operation != NULL )  
          {  
             if( ASYNC_OPSTATE_COMPLETE & operation->read_state())  
             {  
                operation = service->_callback.remove_no_lock(operation);  
                service->_callback.unlock();  
                PEGASUS_ASSERT(operation != NULL);  
                operation->_thread_ptr = myself;  
                operation->_service_ptr = service;  
                service->_handle_async_callback(operation);  
                service->_callback.lock();  
                operation = service->_callback.next(operation);  
                continue;  
             }  
             pegasus_yield();  
             operation = service->_callback.next(operation);  
          }  
          service->_callback.unlock();  
       }  
       if( (service->_incoming.count() == 0) && (service->_callback.count() == 0 ) )  
          myself->sleep(1);  
       else  
          myself->thread_switch();  
    }  
  
    myself->exit_self( (PEGASUS_THREAD_RETURN) 1 );    myself->exit_self( (PEGASUS_THREAD_RETURN) 1 );
    return(0);    return(0);
Line 916 
Line 886 
                                                     capabilities,                                                     capabilities,
                                                     mask,                                                     mask,
                                                     _queueId);                                                     _queueId);
      msg->dest = CIMOM_Q_ID;
   
    Boolean registered = false;    Boolean registered = false;
    AsyncReply *reply = static_cast<AsyncReply *>(SendWait( msg ));    AsyncReply *reply = static_cast<AsyncReply *>(SendWait( msg ));
  
Line 995 
Line 967 
                            capabilities,                            capabilities,
                            mask);                            mask);
  
      req->dest = CIMOM_Q_ID;
   
    AsyncMessage *reply = SendWait(req);    AsyncMessage *reply = SendWait(req);
    if(reply)    if(reply)
    {    {


Legend:
Removed from v.1.43  
changed lines
  Added in v.1.44

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2