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

Diff for /pegasus/src/Pegasus/Common/ReadWriteSem.cpp between version 1.1.2.10 and 1.1.2.11

version 1.1.2.10, 2006/07/28 23:56:54 version 1.1.2.11, 2006/07/29 01:18:27
Line 229 
Line 229 
 // 2) I do not hold the write lock // 2) I do not hold the write lock
 // 3) I am not using a reader slot // 3) I am not using a reader slot
  
   #if 0
 void extricate_read_write(void *parm) void extricate_read_write(void *parm)
 { {
     ReadWriteSem *rws = (ReadWriteSem *) parm;     ReadWriteSem *rws = (ReadWriteSem *) parm;
Line 242 
Line 243 
     if (Threads::equal(rws->_rwlock._internal_lock.get_owner(), myself))     if (Threads::equal(rws->_rwlock._internal_lock.get_owner(), myself))
         rws->_rwlock._internal_lock.unlock();         rws->_rwlock._internal_lock.unlock();
 } }
   #endif
  
  
 ReadWriteSem::ReadWriteSem():_readers(0), _writers(0), _rwlock() ReadWriteSem::ReadWriteSem():_readers(0), _writers(0), _rwlock()
Line 253 
Line 255 
     // lock everyone out of this object     // lock everyone out of this object
     try     try
     {     {
         _rwlock._internal_lock.lock(Threads::self());          _rwlock._internal_lock.lock();
     }     }
     catch(Deadlock & d)     catch(Deadlock & d)
     {     {
Line 301 
Line 303 
  
     // cleanup stack frame     // cleanup stack frame
     {     {
         Threads::cleanup_push(extricate_read_write, this);          // Threads::cleanup_push(extricate_read_write, this);
  
         try         try
         {         {
             if (milliseconds == 0)             if (milliseconds == 0)
                 _rwlock._internal_lock.try_lock(Threads::self());                  _rwlock._internal_lock.try_lock();
             else if (milliseconds == -1)             else if (milliseconds == -1)
                 _rwlock._internal_lock.lock(Threads::self());                  _rwlock._internal_lock.lock();
             else             else
                 _rwlock._internal_lock.timed_lock(milliseconds,                  _rwlock._internal_lock.timed_lock(milliseconds);
                                                   Threads::self());  
         }         }
         catch(const IPCException & e)         catch(const IPCException & e)
         {         {
Line 368 
Line 369 
             {             {
                 try                 try
                 {                 {
                     _rwlock._wlock.try_lock(Threads::self());                      _rwlock._wlock.try_lock();
                 }                 }
                 catch(IPCException & e)                 catch(IPCException & e)
                 {                 {
Line 381 
Line 382 
             {             {
                 try                 try
                 {                 {
                     _rwlock._wlock.lock(Threads::self());                      _rwlock._wlock.lock();
                 }                 }
                 catch(const IPCException & e)                 catch(const IPCException & e)
                 {                 {
Line 394 
Line 395 
             {             {
                 try                 try
                 {                 {
                     _rwlock._wlock.timed_lock(milliseconds, Threads::self());                      _rwlock._wlock.timed_lock(milliseconds);
                 }                 }
                 catch(const IPCException & e)                 catch(const IPCException & e)
                 {                 {


Legend:
Removed from v.1.1.2.10  
changed lines
  Added in v.1.1.2.11

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2