(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.32 and 1.33

version 1.32, 2002/03/11 02:36:18 version 1.33, 2002/03/11 14:58:54
Line 47 
Line 47 
      _mask(mask),      _mask(mask),
      _die(0),      _die(0),
      _pending(true),      _pending(true),
      _incoming(true, 100 ),       _incoming(true, 1000),
      _incoming_queue_shutdown(0),      _incoming_queue_shutdown(0),
      _req_thread(_req_proc, this, false)      _req_thread(_req_proc, this, false)
 { {
Line 91 
Line 91 
    if (_incoming_queue_shutdown.value() == 0 )    if (_incoming_queue_shutdown.value() == 0 )
    {    {
       _shutdown_incoming_queue();       _shutdown_incoming_queue();
   
  //_incoming.shutdown_queue();  
        _req_thread.join();        _req_thread.join();
    }    }
  
Line 194 
Line 192 
    return(0);    return(0);
 } }
  
   void MessageQueueService::_sendwait_callback(AsyncOpNode *op,
                                                MessageQueue *q,
                                                void *parm)
   {
      op->_client_sem.signal();
   }
   
  
 // callback function is responsible for cleaning up all resources // callback function is responsible for cleaning up all resources
 // including op, op->_callback_node, and op->_callback_ptr // including op, op->_callback_node, and op->_callback_ptr
Line 678 
Line 683 
       destroy_op = true;       destroy_op = true;
    }    }
  
    request->block = true;     request->block = false;
    request->op->lock();  
    request->op->_state &= ~ASYNC_OPSTATE_COMPLETE;  
    request->op->_flags &= ~ASYNC_OPFLAGS_CALLBACK;  
   
    request->op->_op_dest = MessageQueue::lookup(request->dest);  
    request->op->unlock();  
  
    if ( request->op->_op_dest == 0 )     SendAsync(request->op,
       return 0;               request->dest,
                _sendwait_callback,
                this,
                (void *)0);
  
    // now see if the meta dispatcher will take it  
    if (true == _meta_dispatcher->route_async(request->op))  
    {  
       request->op->_client_sem.wait();       request->op->_client_sem.wait();
       PEGASUS_ASSERT(request->op->_state & ASYNC_OPSTATE_COMPLETE);  
    }  
   
    request->op->lock();    request->op->lock();
    AsyncReply * rpl = static_cast<AsyncReply *>(request->op->_response.remove_first());    AsyncReply * rpl = static_cast<AsyncReply *>(request->op->_response.remove_first());
    rpl->op = 0;    rpl->op = 0;


Legend:
Removed from v.1.32  
changed lines
  Added in v.1.33

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2