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

Diff for /pegasus/src/Pegasus/Common/Monitor.cpp between version 1.103.10.20 and 1.103.10.22

version 1.103.10.20, 2006/07/19 16:58:52 version 1.103.10.22, 2006/07/21 18:17:51
Line 82 
Line 82 
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
 static AtomicInt _connections(0); static AtomicInt _connections(0);
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
 Mutex Monitor::_cout_mut; Mutex Monitor::_cout_mut;
   #endif
  
 #ifdef PEGASUS_OS_TYPE_WINDOWS #ifdef PEGASUS_OS_TYPE_WINDOWS
  #define PIPE_INCREMENT 1  #define PIPE_INCREMENT 1
Line 103 
Line 105 
      _tickle_server_socket(-1),      _tickle_server_socket(-1),
      _tickle_peer_socket(-1)      _tickle_peer_socket(-1)
 { {
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
     {     {
         AutoMutex automut(Monitor::_cout_mut);         AutoMutex automut(Monitor::_cout_mut);
         PEGASUS_STD(cout) << "Entering: Monitor::Monitor(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);         PEGASUS_STD(cout) << "Entering: Monitor::Monitor(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);
     }     }
   #endif
     int numberOfMonitorEntriesToAllocate = MAX_NUMBER_OF_MONITOR_ENTRIES;     int numberOfMonitorEntriesToAllocate = MAX_NUMBER_OF_MONITOR_ENTRIES;
     Socket::initializeInterface();     Socket::initializeInterface();
     _entries.reserveCapacity(numberOfMonitorEntriesToAllocate);     _entries.reserveCapacity(numberOfMonitorEntriesToAllocate);
Line 122 
Line 126 
        _MonitorEntry entry(0, 0, 0);        _MonitorEntry entry(0, 0, 0);
        _entries.append(entry);        _entries.append(entry);
     }     }
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
     {     {
         AutoMutex automut(Monitor::_cout_mut);         AutoMutex automut(Monitor::_cout_mut);
         PEGASUS_STD(cout) << "Exiting:  Monitor::Monitor(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);         PEGASUS_STD(cout) << "Exiting:  Monitor::Monitor(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);
     }     }
   #endif
 } }
  
 Monitor::~Monitor() Monitor::~Monitor()
 { {
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
     {     {
         AutoMutex automut(Monitor::_cout_mut);         AutoMutex automut(Monitor::_cout_mut);
         PEGASUS_STD(cout) << "Entering: Monitor::~Monitor(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);         PEGASUS_STD(cout) << "Entering: Monitor::~Monitor(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);
     }     }
   #endif
     Tracer::trace(TRC_HTTP, Tracer::LEVEL4, "uninitializing interface");     Tracer::trace(TRC_HTTP, Tracer::LEVEL4, "uninitializing interface");
  
     try{     try{
Line 159 
Line 167 
     Socket::uninitializeInterface();     Socket::uninitializeInterface();
     Tracer::trace(TRC_HTTP, Tracer::LEVEL4,     Tracer::trace(TRC_HTTP, Tracer::LEVEL4,
                   "returning from monitor destructor");                   "returning from monitor destructor");
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
     {     {
         AutoMutex automut(Monitor::_cout_mut);         AutoMutex automut(Monitor::_cout_mut);
         PEGASUS_STD(cout) << "Exiting:  Monitor::~Monitor(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);         PEGASUS_STD(cout) << "Exiting:  Monitor::~Monitor(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);
     }     }
   #endif
 } }
  
 void Monitor::initializeTickler(){ void Monitor::initializeTickler(){
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
     {     {
         AutoMutex automut(Monitor::_cout_mut);         AutoMutex automut(Monitor::_cout_mut);
         PEGASUS_STD(cout) << "Entering: Monitor::initializeTickler(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);         PEGASUS_STD(cout) << "Entering: Monitor::initializeTickler(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);
     }     }
   #endif
     /*     /*
        NOTE: On any errors trying to        NOTE: On any errors trying to
              setup out tickle connection,              setup out tickle connection,
Line 352 
Line 364 
     _MonitorEntry entry(_tickle_peer_socket, 1, INTERNAL);     _MonitorEntry entry(_tickle_peer_socket, 1, INTERNAL);
     entry._status = _MonitorEntry::IDLE;     entry._status = _MonitorEntry::IDLE;
     _entries.append(entry);     _entries.append(entry);
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
     {     {
         AutoMutex automut(Monitor::_cout_mut);         AutoMutex automut(Monitor::_cout_mut);
         PEGASUS_STD(cout) << "Exiting:  Monitor::initializeTickler(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);         PEGASUS_STD(cout) << "Exiting:  Monitor::initializeTickler(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);
     }     }
   #endif
 } }
  
 void Monitor::tickle(void) void Monitor::tickle(void)
 { {
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
     {     {
         AutoMutex automut(Monitor::_cout_mut);         AutoMutex automut(Monitor::_cout_mut);
         PEGASUS_STD(cout) << "Entering: Monitor::tickle(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);         PEGASUS_STD(cout) << "Entering: Monitor::tickle(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);
     }     }
   #endif
     static char _buffer[] =     static char _buffer[] =
     {     {
       '0','0'       '0','0'
Line 373 
Line 389 
     Socket::disableBlocking(_tickle_client_socket);     Socket::disableBlocking(_tickle_client_socket);
     Socket::write(_tickle_client_socket,&_buffer, 2);     Socket::write(_tickle_client_socket,&_buffer, 2);
     Socket::enableBlocking(_tickle_client_socket);     Socket::enableBlocking(_tickle_client_socket);
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
     {     {
         AutoMutex automut(Monitor::_cout_mut);         AutoMutex automut(Monitor::_cout_mut);
         PEGASUS_STD(cout) << "Exiting:  Monitor::tickle(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);         PEGASUS_STD(cout) << "Exiting:  Monitor::tickle(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);
     }     }
   #endif
 } }
  
 void Monitor::setState( Uint32 index, _MonitorEntry::entry_status status ) void Monitor::setState( Uint32 index, _MonitorEntry::entry_status status )
Line 387 
Line 405 
  
 Boolean Monitor::run(Uint32 milliseconds) Boolean Monitor::run(Uint32 milliseconds)
 { {
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
     {     {
         AutoMutex automut(Monitor::_cout_mut);         AutoMutex automut(Monitor::_cout_mut);
         PEGASUS_STD(cout) << "Entering: Monitor::run(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);         PEGASUS_STD(cout) << "Entering: Monitor::run(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);
     }     }
   #endif
  
     Boolean handled_events = false;     Boolean handled_events = false;
     int i = 0;     int i = 0;
Line 621 
Line 641 
         DWORD dwWait=NULL;         DWORD dwWait=NULL;
         pEvents = 0;         pEvents = 0;
  
   
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
         {         {
         AutoMutex automut(Monitor::_cout_mut);         AutoMutex automut(Monitor::_cout_mut);
         cout << "Monitor::run - Calling WaitForMultipleObjects\n";         cout << "Monitor::run - Calling WaitForMultipleObjects\n";
         }         }
   #endif
      // }
         //this should be in a try block         //this should be in a try block
  
     dwWait = WaitForMultipleObjects(     dwWait = WaitForMultipleObjects(
Line 636 
Line 659 
  
     if(dwWait == WAIT_TIMEOUT)     if(dwWait == WAIT_TIMEOUT)
         {         {
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
         {         {
             AutoMutex automut(Monitor::_cout_mut);             AutoMutex automut(Monitor::_cout_mut);
         cout << "Wait WAIT_TIMEOUT\n";         cout << "Wait WAIT_TIMEOUT\n";
         cout << "Monitor::run before the select in TIMEOUT clause events = " << events << endl;         cout << "Monitor::run before the select in TIMEOUT clause events = " << events << endl;
           }
   #endif
         events = select(0, &fdread, NULL, NULL, &tv);         events = select(0, &fdread, NULL, NULL, &tv);
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
               AutoMutex automut(Monitor::_cout_mut);
         cout << "Monitor::run after the select in TIMEOUT clause events = " << events << endl;         cout << "Monitor::run after the select in TIMEOUT clause events = " << events << endl;
         }  #endif
   
  
                    // Sleep(2000);                    // Sleep(2000);
             //continue;             //continue;
Line 655 
Line 683 
         {         {
             if (GetLastError() == 6) //WW this may be too specific             if (GetLastError() == 6) //WW this may be too specific
             {             {
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
                 AutoMutex automut(Monitor::_cout_mut);                 AutoMutex automut(Monitor::_cout_mut);
                 cout << "Monitor::run about to call 'select since waitForMultipleObjects failed\n";                 cout << "Monitor::run about to call 'select since waitForMultipleObjects failed\n";
   #endif
                 /********* NOTE                 /********* NOTE
                 this time (tv) combined with the waitForMulitpleObjects timeout is                 this time (tv) combined with the waitForMulitpleObjects timeout is
                 too long it will cause the client side to time out                 too long it will cause the client side to time out
Line 666 
Line 696 
             }             }
             else             else
             {             {
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
                 AutoMutex automut(Monitor::_cout_mut);                 AutoMutex automut(Monitor::_cout_mut);
                 cout << "Wait Failed returned\n";                 cout << "Wait Failed returned\n";
                 cout << "failed with " << GetLastError() << "." << endl;                 cout << "failed with " << GetLastError() << "." << endl;
   #endif
                 pEvents = -1;                 pEvents = -1;
                 return false;                 return false;
             }             }
Line 677 
Line 709 
         {         {
             int pCount = dwWait - WAIT_OBJECT_0;  // determines which pipe             int pCount = dwWait - WAIT_OBJECT_0;  // determines which pipe
             {             {
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
                  {                  {
                      AutoMutex automut(Monitor::_cout_mut);                      AutoMutex automut(Monitor::_cout_mut);
                      // cout << endl << "****************************" <<                      // cout << endl << "****************************" <<
Line 686 
Line 719 
                      pipeEntryCount <<                      pipeEntryCount <<
                      " this is the type " << entries[indexPipeCountAssociator[pCount]]._type << " this is index " << indexPipeCountAssociator[pCount] << endl;                      " this is the type " << entries[indexPipeCountAssociator[pCount]]._type << " this is index " << indexPipeCountAssociator[pCount] << endl;
                  }                  }
   #endif
  
                /* There is a timeing problem here sometimes the wite in HTTPConnection i s                /* There is a timeing problem here sometimes the wite in HTTPConnection i s
              not all the way done (has not _monitor->setState (_entry_index, _MonitorEntry::IDLE) )              not all the way done (has not _monitor->setState (_entry_index, _MonitorEntry::IDLE) )
Line 694 
Line 728 
                if (entries[indexPipeCountAssociator[pCount]]._status.get() != _MonitorEntry::IDLE)                if (entries[indexPipeCountAssociator[pCount]]._status.get() != _MonitorEntry::IDLE)
                {                {
                    this->setState(indexPipeCountAssociator[pCount], _MonitorEntry::IDLE);                    this->setState(indexPipeCountAssociator[pCount], _MonitorEntry::IDLE);
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
                    AutoMutex automut(Monitor::_cout_mut);                    AutoMutex automut(Monitor::_cout_mut);
   
                    cout << "setting state of index " << indexPipeCountAssociator[pCount]  << " to IDLE" << endl;                    cout << "setting state of index " << indexPipeCountAssociator[pCount]  << " to IDLE" << endl;
   #endif
                }                }
  
  
Line 749 
Line 786 
     else if ((events)||(pEvents))     else if ((events)||(pEvents))
     {     {
  
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
         {         {
                  AutoMutex automut(Monitor::_cout_mut);                  AutoMutex automut(Monitor::_cout_mut);
      cout << "IN Monior::run events= " << events << " pEvents= " << pEvents<< endl;      cout << "IN Monior::run events= " << events << " pEvents= " << pEvents<< endl;
         }         }
   #endif
  
      Tracer::trace(TRC_HTTP, Tracer::LEVEL4,      Tracer::trace(TRC_HTTP, Tracer::LEVEL4,
           "Monitor::run select event received events = %d, monitoring %d idle entries",           "Monitor::run select event received events = %d, monitoring %d idle entries",
Line 769 
Line 807 
              (entries[indx].isNamedPipeConnection() && entries[indx].pipeSet && (pEvents))))              (entries[indx].isNamedPipeConnection() && entries[indx].pipeSet && (pEvents))))
           {           {
  
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
               {               {
                  AutoMutex automut(Monitor::_cout_mut);                  AutoMutex automut(Monitor::_cout_mut);
                  cout <<"Monitor::run - index  " << indx << " just got into 'if' statement" << endl;                  cout <<"Monitor::run - index  " << indx << " just got into 'if' statement" << endl;
               }               }
   #endif
               MessageQueue *q;               MessageQueue *q;
            try{            try{
  
Line 781 
Line 820 
               }               }
              catch (Exception e)              catch (Exception e)
              {              {
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
                  AutoMutex automut(Monitor::_cout_mut);                  AutoMutex automut(Monitor::_cout_mut);
                  cout << " this is what lookup gives - " << e.getMessage() << endl;                  cout << " this is what lookup gives - " << e.getMessage() << endl;
   #endif
                  exit(1);                  exit(1);
              }              }
              catch(...)              catch(...)
              {              {
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
                  AutoMutex automut(Monitor::_cout_mut);                  AutoMutex automut(Monitor::_cout_mut);
                  cout << "MessageQueue::lookup gives strange exception " << endl;                  cout << "MessageQueue::lookup gives strange exception " << endl;
   #endif
                  exit(1);                  exit(1);
              }              }
  
Line 814 
Line 857 
                  }*/                  }*/
                if(entries[indx]._type == Monitor::CONNECTION)                if(entries[indx]._type == Monitor::CONNECTION)
                 {                 {
   
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
                     {                     {
                     cout << "In Monitor::run Monitor::CONNECTION clause" << endl;                     cout << "In Monitor::run Monitor::CONNECTION clause" << endl;
                     AutoMutex automut(Monitor::_cout_mut);                     AutoMutex automut(Monitor::_cout_mut);
                     }                     }
   #endif
  
                                       Tracer::trace(TRC_HTTP, Tracer::LEVEL4,                                       Tracer::trace(TRC_HTTP, Tracer::LEVEL4,
                      "entries[indx].type for indx = %d is Monitor::CONNECTION", indx);                      "entries[indx].type for indx = %d is Monitor::CONNECTION", indx);
Line 850 
Line 896 
                    */                    */
  
                    dst->setNamedPipe(entries[indx].namedPipe); //this step shouldn't be needd                    dst->setNamedPipe(entries[indx].namedPipe); //this step shouldn't be needd
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
                    {                    {
                        AutoMutex automut(Monitor::_cout_mut);                        AutoMutex automut(Monitor::_cout_mut);
                    cout << "In Monitor::run after dst->setNamedPipe string read is " <<  entries[indx].namedPipe.raw << endl;                    cout << "In Monitor::run after dst->setNamedPipe string read is " <<  entries[indx].namedPipe.raw << endl;
                    }                    }
   #endif
                    try                    try
                    {                    {
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
                        {                        {
                        AutoMutex automut(Monitor::_cout_mut);                        AutoMutex automut(Monitor::_cout_mut);
                        cout << "In Monitor::run about to call 'dst->run(1)' "  << endl;                        cout << "In Monitor::run about to call 'dst->run(1)' "  << endl;
                        }                        }
   #endif
                        dst->run(1);                        dst->run(1);
                    }                    }
                    catch (...)                    catch (...)
                    {                    {
                        AutoMutex automut(Monitor::_cout_mut);  
                        Tracer::trace(TRC_HTTP, Tracer::LEVEL4,                        Tracer::trace(TRC_HTTP, Tracer::LEVEL4,
                        "Monitor::_dispatch: exception received");                        "Monitor::_dispatch: exception received");
                    }                    }
Line 901 
Line 950 
                         // set ourself to BUSY,                         // set ourself to BUSY,
                         // read the data                         // read the data
                         // and set ourself back to IDLE                         // and set ourself back to IDLE
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
               AutoMutex automut(Monitor::_cout_mut);
   
             cout << endl << " in - entries[indx]._type == Monitor::INTERNAL- " << endl << endl;             cout << endl << " in - entries[indx]._type == Monitor::INTERNAL- " << endl << endl;
   #endif
             if (!entries[indx].isNamedPipeConnection())             if (!entries[indx].isNamedPipeConnection())
             {             {
                             entries[indx]._status = _MonitorEntry::BUSY;                             entries[indx]._status = _MonitorEntry::BUSY;
Line 914 
Line 967 
                 }                 }
                 else                 else
                 {                 {
             {  
  
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
         {
             AutoMutex automut(Monitor::_cout_mut);             AutoMutex automut(Monitor::_cout_mut);
             cout << "In Monitor::run else clause of CONNECTION if statments" << endl;             cout << "In Monitor::run else clause of CONNECTION if statments" << endl;
             }             }
   #endif
                                Tracer::trace(TRC_HTTP, Tracer::LEVEL4,                                Tracer::trace(TRC_HTTP, Tracer::LEVEL4,
                      "Non-connection entry, indx = %d, has been received.", indx);                      "Non-connection entry, indx = %d, has been received.", indx);
                    int events = 0;                    int events = 0;
            Message *msg;            Message *msg;
            {  
  
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
             {
            AutoMutex automut(Monitor::_cout_mut);            AutoMutex automut(Monitor::_cout_mut);
            cout << " In Monitor::run Just before checking if NamedPipeConnection" << "for Index "<<indx<< endl;            cout << " In Monitor::run Just before checking if NamedPipeConnection" << "for Index "<<indx<< endl;
            }            }
   #endif
            if (entries[indx].isNamedPipeConnection())            if (entries[indx].isNamedPipeConnection())
            {            {
                if(!entries[indx].namedPipe.isConnectionPipe)                if(!entries[indx].namedPipe.isConnectionPipe)
Line 945 
Line 1001 
  
  
  
         memset(entries[indx].namedPipe.raw,'\0',4096);          memset(entries[indx].namedPipe.raw,'\0',NAMEDPIPE_MAX_BUFFER_SIZE);
         BOOL rc = ::ReadFile(         BOOL rc = ::ReadFile(
                 entries[indx].namedPipe.getPipe(),                 entries[indx].namedPipe.getPipe(),
                 &entries[indx].namedPipe.raw,                 &entries[indx].namedPipe.raw,
                 NAMEDPIPE_MAX_BUFFER_SIZE,                 NAMEDPIPE_MAX_BUFFER_SIZE,
                 &entries[indx].namedPipe.bytesRead,                 &entries[indx].namedPipe.bytesRead,
                 entries[indx].namedPipe.getOverlap());                 entries[indx].namedPipe.getOverlap());
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
         {         {
          AutoMutex automut(Monitor::_cout_mut);          AutoMutex automut(Monitor::_cout_mut);
          cout << "Monitor::run just called read on index " << indx << endl;          cout << "Monitor::run just called read on index " << indx << endl;
         }         }
   #endif
  
          //&entries[indx].namedPipe.bytesRead = &size;          //&entries[indx].namedPipe.bytesRead = &size;
         if(!rc)         if(!rc)
         {         {
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
             AutoMutex automut(Monitor::_cout_mut);             AutoMutex automut(Monitor::_cout_mut);
            cout << "ReadFile failed for : "  << GetLastError() << "."<< endl;            cout << "ReadFile failed for : "  << GetLastError() << "."<< endl;
   #endif
         }         }
  
  
Line 979 
Line 1036 
  
  
                }                }
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
                {                {
                    AutoMutex automut(Monitor::_cout_mut);                    AutoMutex automut(Monitor::_cout_mut);
                     cout << " In Monitor::run about to create a Pipe message" << endl;                     cout << " In Monitor::run about to create a Pipe message" << endl;
  
                }                }
   #endif
                events |= NamedPipeMessage::READ;                events |= NamedPipeMessage::READ;
                msg = new NamedPipeMessage(entries[indx].namedPipe, events);                msg = new NamedPipeMessage(entries[indx].namedPipe, events);
            }            }
            else            else
            {            {
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
                {                {
                AutoMutex automut(Monitor::_cout_mut);                AutoMutex automut(Monitor::_cout_mut);
                cout << " In Monitor::run ..its a socket message" << endl;                cout << " In Monitor::run ..its a socket message" << endl;
                }                }
   #endif
                events |= SocketMessage::READ;                events |= SocketMessage::READ;
                        msg = new SocketMessage(entries[indx].socket, events);                        msg = new SocketMessage(entries[indx].socket, events);
            }            }
Line 1007 
Line 1067 
            entries.reset(_entries);            entries.reset(_entries);
                    entries[indx]._status = _MonitorEntry::IDLE;                    entries[indx]._status = _MonitorEntry::IDLE;
  
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
                    {                    {
                        AutoMutex automut(Monitor::_cout_mut);                        AutoMutex automut(Monitor::_cout_mut);
                        PEGASUS_STD(cout) << "Exiting:  Monitor::run(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);                        PEGASUS_STD(cout) << "Exiting:  Monitor::run(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);
                    }                    }
   #endif
                    return true;                    return true;
                 }                 }
              }              }
Line 1022 
Line 1084 
        }        }
     }     }
  
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
     {     {
         AutoMutex automut(Monitor::_cout_mut);         AutoMutex automut(Monitor::_cout_mut);
         PEGASUS_STD(cout) << "Exiting:  Monitor::run(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);         PEGASUS_STD(cout) << "Exiting:  Monitor::run(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);
     }     }
   #endif
     return(handled_events);     return(handled_events);
 } }
  
 void Monitor::stopListeningForConnections(Boolean wait) void Monitor::stopListeningForConnections(Boolean wait)
 { {
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
     {     {
         AutoMutex automut(Monitor::_cout_mut);         AutoMutex automut(Monitor::_cout_mut);
         PEGASUS_STD(cout) << "Entering: Monitor::stopListeningForConnections(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);         PEGASUS_STD(cout) << "Entering: Monitor::stopListeningForConnections(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);
     }     }
   #endif
     PEG_METHOD_ENTER(TRC_HTTP, "Monitor::stopListeningForConnections()");     PEG_METHOD_ENTER(TRC_HTTP, "Monitor::stopListeningForConnections()");
     // set boolean then tickle the server to recognize _stopConnections     // set boolean then tickle the server to recognize _stopConnections
     _stopConnections = 1;     _stopConnections = 1;
Line 1049 
Line 1115 
     }     }
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
     {     {
         AutoMutex automut(Monitor::_cout_mut);         AutoMutex automut(Monitor::_cout_mut);
         PEGASUS_STD(cout) << "Exiting:  Monitor::stopListeningForConnections(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);         PEGASUS_STD(cout) << "Exiting:  Monitor::stopListeningForConnections(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);
     }     }
   #endif
 } }
  
  
Line 1062 
Line 1130 
     Uint32 queueId,     Uint32 queueId,
     int type)     int type)
 { {
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
     {     {
         AutoMutex automut(Monitor::_cout_mut);         AutoMutex automut(Monitor::_cout_mut);
         PEGASUS_STD(cout) << "Entering: Monitor::solicitSocketMessages(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);         PEGASUS_STD(cout) << "Entering: Monitor::solicitSocketMessages(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);
     }     }
   #endif
    PEG_METHOD_ENTER(TRC_HTTP, "Monitor::solicitSocketMessages");    PEG_METHOD_ENTER(TRC_HTTP, "Monitor::solicitSocketMessages");
    AutoMutex autoMut(_entry_mut);    AutoMutex autoMut(_entry_mut);
    // Check to see if we need to dynamically grow the _entries array    // Check to see if we need to dynamically grow the _entries array
Line 1092 
Line 1162 
             _entries[index]._type = type;             _entries[index]._type = type;
             _entries[index]._status = _MonitorEntry::IDLE;             _entries[index]._status = _MonitorEntry::IDLE;
  
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
             {             {
                 AutoMutex automut(Monitor::_cout_mut);                 AutoMutex automut(Monitor::_cout_mut);
                 PEGASUS_STD(cout) << "Exiting:  Monitor::solicitSocketMessages(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);                 PEGASUS_STD(cout) << "Exiting:  Monitor::solicitSocketMessages(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);
             }             }
   #endif
             return index;             return index;
          }          }
       }       }
Line 1105 
Line 1177 
    }    }
    _solicitSocketCount--;  // decrease the count, if we are here we didnt do anything meaningful    _solicitSocketCount--;  // decrease the count, if we are here we didnt do anything meaningful
    PEG_METHOD_EXIT();    PEG_METHOD_EXIT();
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
    {    {
        AutoMutex automut(Monitor::_cout_mut);        AutoMutex automut(Monitor::_cout_mut);
        PEGASUS_STD(cout) << "Exiting:  Monitor::solicitSocketMessages(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);        PEGASUS_STD(cout) << "Exiting:  Monitor::solicitSocketMessages(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);
    }    }
   #endif
    return -1;    return -1;
  
 } }
  
 void Monitor::unsolicitSocketMessages(PEGASUS_SOCKET socket) void Monitor::unsolicitSocketMessages(PEGASUS_SOCKET socket)
 { {
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
     {     {
         AutoMutex automut(Monitor::_cout_mut);         AutoMutex automut(Monitor::_cout_mut);
         PEGASUS_STD(cout) << "Entering: Monitor::unsolicitSocketMessages(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);         PEGASUS_STD(cout) << "Entering: Monitor::unsolicitSocketMessages(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);
     }     }
   #endif
  
     PEG_METHOD_ENTER(TRC_HTTP, "Monitor::unsolicitSocketMessages");     PEG_METHOD_ENTER(TRC_HTTP, "Monitor::unsolicitSocketMessages");
     AutoMutex autoMut(_entry_mut);     AutoMutex autoMut(_entry_mut);
Line 1152 
Line 1228 
         index--;         index--;
     }     }
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
     {     {
         AutoMutex automut(Monitor::_cout_mut);         AutoMutex automut(Monitor::_cout_mut);
         PEGASUS_STD(cout) << "Exiting:  Monitor::unsolicitSocketMessages(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);         PEGASUS_STD(cout) << "Exiting:  Monitor::unsolicitSocketMessages(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);
     }     }
   #endif
 } }
  
 // Note: this is no longer called with PEP 183. // Note: this is no longer called with PEP 183.
 PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL Monitor::_dispatch(void *parm) PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL Monitor::_dispatch(void *parm)
 { {
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
     {     {
         AutoMutex automut(Monitor::_cout_mut);         AutoMutex automut(Monitor::_cout_mut);
         PEGASUS_STD(cout) << "Entering: Monitor::_dispatch(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);         PEGASUS_STD(cout) << "Entering: Monitor::_dispatch(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);
     }     }
   #endif
    HTTPConnection *dst = reinterpret_cast<HTTPConnection *>(parm);    HTTPConnection *dst = reinterpret_cast<HTTPConnection *>(parm);
    Tracer::trace(TRC_HTTP, Tracer::LEVEL4,    Tracer::trace(TRC_HTTP, Tracer::LEVEL4,
         "Monitor::_dispatch: entering run() for indx  = %d, queueId = %d, q = %p",         "Monitor::_dispatch: entering run() for indx  = %d, queueId = %d, q = %p",
Line 1207 
Line 1287 
     int type)     int type)
 { {
    PEG_METHOD_ENTER(TRC_HTTP, "Monitor::solicitPipeMessages");    PEG_METHOD_ENTER(TRC_HTTP, "Monitor::solicitPipeMessages");
   
    AutoMutex autoMut(_entry_mut);    AutoMutex autoMut(_entry_mut);
    // Check to see if we need to dynamically grow the _entries array    // Check to see if we need to dynamically grow the _entries array
    // We always want the _entries array to 2 bigger than the    // We always want the _entries array to 2 bigger than the
    // current connections requested    // current connections requested
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
      AutoMutex automut(Monitor::_cout_mut);
    PEGASUS_STD(cout) << "In Monitor::solicitPipeMessages at the begining" << PEGASUS_STD(endl);    PEGASUS_STD(cout) << "In Monitor::solicitPipeMessages at the begining" << PEGASUS_STD(endl);
   #endif
  
  
    _solicitSocketCount++;  // bump the count    _solicitSocketCount++;  // bump the count
Line 1237 
Line 1320 
             _entries[index].queueId  = queueId;             _entries[index].queueId  = queueId;
             _entries[index]._type = type;             _entries[index]._type = type;
             _entries[index]._status = _MonitorEntry::IDLE;             _entries[index]._status = _MonitorEntry::IDLE;
     #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
               AutoMutex automut(Monitor::_cout_mut);
             PEGASUS_STD(cout) << "In Monitor::solicitPipeMessages after seting up  _entries[index] index = " << index << PEGASUS_STD(endl);             PEGASUS_STD(cout) << "In Monitor::solicitPipeMessages after seting up  _entries[index] index = " << index << PEGASUS_STD(endl);
     #endif
             return index;             return index;
          }          }
       }       }
Line 1258 
Line 1342 
  
 void Monitor::unsolicitPipeMessages(NamedPipe namedPipe) void Monitor::unsolicitPipeMessages(NamedPipe namedPipe)
 { {
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
     {     {
         AutoMutex automut(Monitor::_cout_mut);         AutoMutex automut(Monitor::_cout_mut);
         PEGASUS_STD(cout) << "Entering: Monitor::unsolicitPipeMessages(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);         PEGASUS_STD(cout) << "Entering: Monitor::unsolicitPipeMessages(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);
     }     }
   #endif
  
     PEG_METHOD_ENTER(TRC_HTTP, "Monitor::unsolicitPipeMessages");     PEG_METHOD_ENTER(TRC_HTTP, "Monitor::unsolicitPipeMessages");
     AutoMutex autoMut(_entry_mut);     AutoMutex autoMut(_entry_mut);
Line 1298 
Line 1384 
         index--;         index--;
     }     }
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
   #ifdef PEGASUS_LOCALDOMAINSOCKET_DEBUG
     {     {
         AutoMutex automut(Monitor::_cout_mut);         AutoMutex automut(Monitor::_cout_mut);
         PEGASUS_STD(cout) << "Exiting:  Monitor::unsolicitPipeMessages(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);         PEGASUS_STD(cout) << "Exiting:  Monitor::unsolicitPipeMessages(): (tid:" << Uint32(pegasus_thread_self()) << ")" << PEGASUS_STD(endl);
     }     }
   #endif
 } }
  
  


Legend:
Removed from v.1.103.10.20  
changed lines
  Added in v.1.103.10.22

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2