Changeset 25310 in vbox for trunk/src/VBox/Main/include
- Timestamp:
- Dec 10, 2009 5:06:44 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 55876
- Location:
- trunk/src/VBox/Main/include
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/include/AudioAdapterImpl.h
r24989 r25310 94 94 HRESULT saveSettings(settings::AudioAdapter &data); 95 95 96 bool isModified() { AutoWriteLock alock (this); return mData.isBackedUp(); }97 bool isReallyModified() { AutoWriteLock alock (this); return mData.hasActualChanges(); }96 bool isModified() { AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); return mData.isBackedUp(); } 97 bool isReallyModified() { AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); return mData.hasActualChanges(); } 98 98 bool rollback(); 99 99 void commit(); -
trunk/src/VBox/Main/include/AutoLock.h
r25289 r25310 5 5 6 6 /* 7 * Copyright (C) 2006-200 8Sun Microsystems, Inc.7 * Copyright (C) 2006-2009 Sun Microsystems, Inc. 8 8 * 9 9 * This file is part of VirtualBox Open Source Edition (OSE), as … … 25 25 #include <iprt/types.h> 26 26 27 #ifdef DEBUG 28 # ifdef VBOX_WITH_LOCK_VALIDATOR 29 # define VBOX_WITH_DEBUG_LOCK_VALIDATOR 30 # endif 31 #endif 32 33 #ifdef VBOX_WITH_DEBUG_LOCK_VALIDATOR 34 # define COMMA_LOCKVAL_SRC_POS , RT_SRC_POS 35 # define LOCKVAL_SRC_POS_DECL RT_SRC_POS_DECL 36 # define COMMA_LOCKVAL_SRC_POS_DECL , RT_SRC_POS_DECL 37 # define LOCKVAL_SRC_POS_ARGS RT_SRC_POS_ARGS 38 # define COMMA_LOCKVAL_SRC_POS_ARGS , RT_SRC_POS_ARGS 39 #else 40 # define COMMA_LOCKVAL_SRC_POS 41 # define LOCKVAL_SRC_POS_DECL 42 # define COMMA_LOCKVAL_SRC_POS_DECL 43 # define LOCKVAL_SRC_POS_ARGS 44 # define COMMA_LOCKVAL_SRC_POS_ARGS 45 #endif 46 27 47 namespace util 28 48 { … … 35 55 36 56 /** 37 * Abstract read/write semaphore handle. 38 * 39 * This is a base class to implement semaphores that provide read/write locking. 40 * Subclasses must implement all pure virtual methods of this class together 41 * with pure methods of ReadLockOps and WriteLockOps classes. 42 * 43 * See the AutoWriteLock class documentation for the detailed description of 44 * read and write locks. 57 * Abstract base class for semaphore handles (RWLockHandle and WriteLockHandle). 45 58 */ 46 59 class LockHandle … … 66 79 virtual uint32_t writeLockLevel() const = 0; 67 80 68 virtual void lockWrite() = 0; 81 #ifdef VBOX_WITH_DEBUG_LOCK_VALIDATOR 82 void validateLock(LOCKVAL_SRC_POS_DECL); 83 void validateUnlock(); 84 #endif 85 86 virtual void lockWrite(LOCKVAL_SRC_POS_DECL) = 0; 69 87 virtual void unlockWrite() = 0; 70 virtual void lockRead( ) = 0;88 virtual void lockRead(LOCKVAL_SRC_POS_DECL) = 0; 71 89 virtual void unlockRead() = 0; 90 91 static RTTLS s_lockingStackTlsIndex; 72 92 73 93 private: … … 93 113 virtual bool isWriteLockOnCurrentThread() const; 94 114 95 virtual void lockWrite( );115 virtual void lockWrite(LOCKVAL_SRC_POS_DECL); 96 116 virtual void unlockWrite(); 97 virtual void lockRead( );117 virtual void lockRead(LOCKVAL_SRC_POS_DECL); 98 118 virtual void unlockRead(); 99 119 … … 125 145 virtual bool isWriteLockOnCurrentThread() const; 126 146 127 virtual void lockWrite( );147 virtual void lockWrite(LOCKVAL_SRC_POS_DECL); 128 148 virtual void unlockWrite(); 129 virtual void lockRead( );149 virtual void lockRead(LOCKVAL_SRC_POS_DECL); 130 150 virtual void unlockRead(); 131 151 virtual uint32_t writeLockLevel() const; … … 193 213 { 194 214 protected: 195 AutoLockBase(uint32_t cHandles); 196 AutoLockBase(uint32_t cHandles, LockHandle *pHandle); 215 AutoLockBase(uint32_t cHandles 216 COMMA_LOCKVAL_SRC_POS_DECL); 217 AutoLockBase(uint32_t cHandles, 218 LockHandle *pHandle 219 COMMA_LOCKVAL_SRC_POS_DECL); 197 220 virtual ~AutoLockBase(); 198 221 … … 245 268 * runtime. 246 269 */ 247 AutoReadLock() 248 : AutoLockBase(1, NULL) 270 AutoReadLock(LOCKVAL_SRC_POS_DECL) 271 : AutoLockBase(1, 272 NULL 273 COMMA_LOCKVAL_SRC_POS_ARGS) 249 274 { } 250 275 … … 253 278 * semaphore by requesting a read lock. 254 279 */ 255 AutoReadLock(LockHandle *aHandle) 256 : AutoLockBase(1, aHandle) 280 AutoReadLock(LockHandle *aHandle 281 COMMA_LOCKVAL_SRC_POS_DECL) 282 : AutoLockBase(1, 283 aHandle 284 COMMA_LOCKVAL_SRC_POS_ARGS) 257 285 { 258 286 acquire(); … … 263 291 * semaphore by requesting a read lock. 264 292 */ 265 AutoReadLock(LockHandle &aHandle) 266 : AutoLockBase(1, &aHandle) 293 AutoReadLock(LockHandle &aHandle 294 COMMA_LOCKVAL_SRC_POS_DECL) 295 : AutoLockBase(1, 296 &aHandle 297 COMMA_LOCKVAL_SRC_POS_ARGS) 267 298 { 268 299 acquire(); … … 273 304 * semaphore by requesting a read lock. 274 305 */ 275 AutoReadLock(const Lockable &aLockable) 276 : AutoLockBase(1, aLockable.lockHandle()) 306 AutoReadLock(const Lockable &aLockable 307 COMMA_LOCKVAL_SRC_POS_DECL) 308 : AutoLockBase(1, 309 aLockable.lockHandle() 310 COMMA_LOCKVAL_SRC_POS_ARGS) 277 311 { 278 312 acquire(); … … 283 317 * semaphore by requesting a read lock. 284 318 */ 285 AutoReadLock(const Lockable *aLockable) 286 : AutoLockBase(1, aLockable ? aLockable->lockHandle() : NULL) 319 AutoReadLock(const Lockable *aLockable 320 COMMA_LOCKVAL_SRC_POS_DECL) 321 : AutoLockBase(1, 322 aLockable ? aLockable->lockHandle() : NULL 323 COMMA_LOCKVAL_SRC_POS_ARGS) 287 324 { 288 325 acquire(); … … 314 351 { 315 352 protected: 316 AutoWriteLockBase(uint32_t cHandles) 317 : AutoLockBase(cHandles) 353 AutoWriteLockBase(uint32_t cHandles 354 COMMA_LOCKVAL_SRC_POS_DECL) 355 : AutoLockBase(cHandles 356 COMMA_LOCKVAL_SRC_POS_ARGS) 318 357 { } 319 358 320 AutoWriteLockBase(uint32_t cHandles, LockHandle *pHandle) 321 : AutoLockBase(cHandles, pHandle) 359 AutoWriteLockBase(uint32_t cHandles, 360 LockHandle *pHandle 361 COMMA_LOCKVAL_SRC_POS_DECL) 362 : AutoLockBase(cHandles, 363 pHandle 364 COMMA_LOCKVAL_SRC_POS_ARGS) 322 365 { } 323 366 … … 366 409 * runtime. 367 410 */ 368 AutoWriteLock() 369 : AutoWriteLockBase(1, NULL) 411 AutoWriteLock(LOCKVAL_SRC_POS_DECL) 412 : AutoWriteLockBase(1, 413 NULL 414 COMMA_LOCKVAL_SRC_POS_ARGS) 370 415 { } 371 416 … … 374 419 * semaphore by requesting a write lock. 375 420 */ 376 AutoWriteLock(LockHandle *aHandle) 377 : AutoWriteLockBase(1, aHandle) 421 AutoWriteLock(LockHandle *aHandle 422 COMMA_LOCKVAL_SRC_POS_DECL) 423 : AutoWriteLockBase(1, 424 aHandle 425 COMMA_LOCKVAL_SRC_POS_ARGS) 378 426 { 379 427 acquire(); … … 384 432 * semaphore by requesting a write lock. 385 433 */ 386 AutoWriteLock(LockHandle &aHandle) 387 : AutoWriteLockBase(1, &aHandle) 434 AutoWriteLock(LockHandle &aHandle 435 COMMA_LOCKVAL_SRC_POS_DECL) 436 : AutoWriteLockBase(1, 437 &aHandle 438 COMMA_LOCKVAL_SRC_POS_ARGS) 388 439 { 389 440 acquire(); … … 394 445 * semaphore by requesting a write lock. 395 446 */ 396 AutoWriteLock(const Lockable &aLockable) 397 : AutoWriteLockBase(1, aLockable.lockHandle()) 447 AutoWriteLock(const Lockable &aLockable 448 COMMA_LOCKVAL_SRC_POS_DECL) 449 : AutoWriteLockBase(1, 450 aLockable.lockHandle() 451 COMMA_LOCKVAL_SRC_POS_ARGS) 398 452 { 399 453 acquire(); … … 404 458 * semaphore by requesting a write lock. 405 459 */ 406 AutoWriteLock(const Lockable *aLockable) 407 : AutoWriteLockBase(1, aLockable ? aLockable->lockHandle() : NULL) 460 AutoWriteLock(const Lockable *aLockable 461 COMMA_LOCKVAL_SRC_POS_DECL) 462 : AutoWriteLockBase(1, 463 aLockable ? aLockable->lockHandle() : NULL 464 COMMA_LOCKVAL_SRC_POS_ARGS) 408 465 { 409 466 acquire(); … … 461 518 { 462 519 public: 463 AutoMultiWriteLock2(Lockable *pl1, Lockable *pl2); 464 AutoMultiWriteLock2(LockHandle *pl1, LockHandle *pl2); 520 AutoMultiWriteLock2(Lockable *pl1, 521 Lockable *pl2 522 COMMA_LOCKVAL_SRC_POS_DECL); 523 AutoMultiWriteLock2(LockHandle *pl1, 524 LockHandle *pl2 525 COMMA_LOCKVAL_SRC_POS_DECL); 465 526 466 527 virtual ~AutoMultiWriteLock2() … … 477 538 { 478 539 public: 479 AutoMultiWriteLock3(Lockable *pl1, Lockable *pl2, Lockable *pl3); 480 AutoMultiWriteLock3(LockHandle *pl1, LockHandle *pl2, LockHandle *pl3); 540 AutoMultiWriteLock3(Lockable *pl1, 541 Lockable *pl2, 542 Lockable *pl3 543 COMMA_LOCKVAL_SRC_POS_DECL); 544 AutoMultiWriteLock3(LockHandle *pl1, 545 LockHandle *pl2, 546 LockHandle *pl3 547 COMMA_LOCKVAL_SRC_POS_DECL); 481 548 482 549 virtual ~AutoMultiWriteLock3() -
trunk/src/VBox/Main/include/MachineImpl.h
r25150 r25310 761 761 bool aSetError = false) 762 762 { 763 AutoWriteLock alock(this );763 AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); 764 764 return findSharedFolder(aName, aSharedFolder, aSetError); 765 765 } -
trunk/src/VBox/Main/include/NetworkAdapterImpl.h
r25098 r25310 140 140 HRESULT saveSettings(settings::NetworkAdapter &data); 141 141 142 bool isModified() { AutoWriteLock alock (this); return mData.isBackedUp(); }143 bool isReallyModified() { AutoWriteLock alock (this); return mData.hasActualChanges(); }142 bool isModified() { AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); return mData.isBackedUp(); } 143 bool isReallyModified() { AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); return mData.hasActualChanges(); } 144 144 bool rollback(); 145 145 void commit(); -
trunk/src/VBox/Main/include/Shareable.h
r14949 r25310 106 106 * { 107 107 * // acquire the lock until the end of the block 108 * AutoWriteLock alock (mData);108 * AutoWriteLock alock(mData COMMA_LOCKVAL_SRC_POS); 109 109 * // share with another instance (thatData defined somewhere else) 110 110 * { 111 * AutoReadLock thatLock (thatData);111 * AutoReadLock thatLock(thatData COMMA_LOCKVAL_SRC_POS); 112 112 * mData = thatData; 113 113 * } … … 130 130 * { 131 131 * // read-only data access 132 * AutoReadLock lock (mData); // protect Shareable members (read-only)133 * AutoReadLock dataLock (mData.data()); // protect Data members (read-only)132 * AutoReadLock lock(mData COMMA_LOCKVAL_SRC_POS); // protect Shareable members (read-only) 133 * AutoReadLock dataLock(mData.data() COMMA_LOCKVAL_SRC_POS); // protect Data members (read-only) 134 134 * if (mData->mSomeVield) ... 135 135 * } … … 137 137 * { 138 138 * // data modification 139 * AutoReadLock lock (mData); // protect Shareable members (still read-only)140 * AutoWriteLock dataLock (mData.data()); // protect Data members (exclusive)139 * AutoReadLock lock(mData COMMA_LOCKVAL_SRC_POS); // protect Shareable members (still read-only) 140 * AutoWriteLock dataLock(mData.data() COMMA_LOCKVAL_SRC_POS); // protect Data members (exclusive) 141 141 * mData->mSomeVield = someValue; 142 142 * } -
trunk/src/VBox/Main/include/VRDPServerImpl.h
r24989 r25310 113 113 HRESULT saveSettings(settings::VRDPSettings &data); 114 114 115 bool isModified() { AutoWriteLock alock (this); return mData.isBackedUp(); }116 bool isReallyModified() { AutoWriteLock alock (this); return mData.hasActualChanges(); }115 bool isModified() { AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); return mData.isBackedUp(); } 116 bool isReallyModified() { AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS); return mData.hasActualChanges(); } 117 117 bool rollback(); 118 118 void commit(); -
trunk/src/VBox/Main/include/objectslist.h
r25194 r25310 89 89 void addChild(MyType p) 90 90 { 91 AutoWriteLock al(m_lock );91 AutoWriteLock al(m_lock COMMA_LOCKVAL_SRC_POS); 92 92 m_ll.push_back(p); 93 93 } … … 100 100 void removeChild(MyType p) 101 101 { 102 AutoWriteLock al(m_lock );102 AutoWriteLock al(m_lock COMMA_LOCKVAL_SRC_POS); 103 103 m_ll.remove(p); 104 104 } … … 113 113 void appendOtherList(ObjectsList<T> &ll) 114 114 { 115 AutoReadLock alr(ll.getLockHandle() );115 AutoReadLock alr(ll.getLockHandle() COMMA_LOCKVAL_SRC_POS); 116 116 for (const_iterator it = ll.begin(); 117 117 it != ll.end(); … … 128 128 void uninitAll() 129 129 { 130 AutoWriteLock al(m_lock );130 AutoWriteLock al(m_lock COMMA_LOCKVAL_SRC_POS); 131 131 for (iterator it = m_ll.begin(); 132 132 it != m_ll.end(); … … 145 145 size_t size() 146 146 { 147 AutoReadLock al(m_lock );147 AutoReadLock al(m_lock COMMA_LOCKVAL_SRC_POS); 148 148 return m_ll.size(); 149 149 } … … 165 165 MyType front() 166 166 { 167 AutoReadLock al(m_lock );167 AutoReadLock al(m_lock COMMA_LOCKVAL_SRC_POS); 168 168 return m_ll.front(); 169 169 }
Note:
See TracChangeset
for help on using the changeset viewer.