VirtualBox

Ignore:
Timestamp:
Dec 10, 2009 5:06:44 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
55876
Message:

Main: lock validator, first batch: implement per-thread stack to trace locking (disabled by default, use VBOX_WITH_LOCK_VALIDATOR, but that WILL FAIL presently)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/VirtualBoxBase.cpp

    r25184 r25310  
    158158                                        bool aLimited /* = false */)
    159159{
    160     AutoWriteLock stateLock (mStateLock);
     160    AutoWriteLock stateLock(mStateLock COMMA_LOCKVAL_SRC_POS);
    161161
    162162    HRESULT rc = E_ACCESSDENIED;
     
    251251void VirtualBoxBaseProto::releaseCaller()
    252252{
    253     AutoWriteLock stateLock (mStateLock);
     253    AutoWriteLock stateLock(mStateLock COMMA_LOCKVAL_SRC_POS);
    254254
    255255    if (mState == Ready || mState == Limited)
     
    313313    Assert (aObj);
    314314
    315     AutoWriteLock stateLock (mObj->mStateLock);
     315    AutoWriteLock stateLock(mObj->mStateLock COMMA_LOCKVAL_SRC_POS);
    316316
    317317    mOk = mObj->mState == NotReady;
     
    334334        return;
    335335
    336     AutoWriteLock stateLock (mObj->mStateLock);
     336    AutoWriteLock stateLock(mObj->mStateLock COMMA_LOCKVAL_SRC_POS);
    337337
    338338    Assert (mObj->mState == InInit);
     
    386386    Assert (aObj);
    387387
    388     AutoWriteLock stateLock (mObj->mStateLock);
     388    AutoWriteLock stateLock(mObj->mStateLock COMMA_LOCKVAL_SRC_POS);
    389389
    390390    mOk = mObj->mState == Limited;
     
    407407        return;
    408408
    409     AutoWriteLock stateLock (mObj->mStateLock);
     409    AutoWriteLock stateLock(mObj->mStateLock COMMA_LOCKVAL_SRC_POS);
    410410
    411411    Assert (mObj->mState == InInit);
     
    448448    Assert (aObj);
    449449
    450     AutoWriteLock stateLock (mObj->mStateLock);
     450    AutoWriteLock stateLock(mObj->mStateLock COMMA_LOCKVAL_SRC_POS);
    451451
    452452    Assert (mObj->mState != InInit);
     
    531531        return;
    532532
    533     AutoWriteLock stateLock (mObj->mStateLock);
     533    AutoWriteLock stateLock(mObj->mStateLock COMMA_LOCKVAL_SRC_POS);
    534534
    535535    Assert (mObj->mState == InUninit);
     
    557557    Assert (aObj);
    558558
    559     AutoWriteLock stateLock (mObj->mStateLock);
     559    AutoWriteLock stateLock(mObj->mStateLock COMMA_LOCKVAL_SRC_POS);
    560560
    561561    AssertReturnVoid (mObj->mState != InInit &&
     
    615615        return;
    616616
    617     AutoWriteLock stateLock (mObj->mStateLock);
     617    AutoWriteLock stateLock(mObj->mStateLock COMMA_LOCKVAL_SRC_POS);
    618618
    619619    Assert (mObj->mState == MayUninit);
     
    959959                      autoCaller.state() == InInit);
    960960
    961     AutoWriteLock chLock (childrenLock());
     961    AutoWriteLock chLock(childrenLock() COMMA_LOCKVAL_SRC_POS);
    962962
    963963    size_t count = mDependentChildren.size();
     
    10261026        return NULL;
    10271027
    1028     AutoReadLock alock(childrenLock());
     1028    AutoReadLock alock(childrenLock() COMMA_LOCKVAL_SRC_POS);
    10291029
    10301030    DependentChildren::const_iterator it = mDependentChildren.find (aUnk);
     
    10491049                      autoCaller.state() == Limited);
    10501050
    1051     AutoWriteLock alock(childrenLock());
     1051    AutoWriteLock alock(childrenLock() COMMA_LOCKVAL_SRC_POS);
    10521052
    10531053    std::pair <DependentChildren::iterator, bool> result =
     
    10691069                      autoCaller.state() == Limited);
    10701070
    1071     AutoWriteLock alock(childrenLock());
     1071    AutoWriteLock alock(childrenLock() COMMA_LOCKVAL_SRC_POS);
    10721072
    10731073    DependentChildren::size_type result = mDependentChildren.erase (aUnk);
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette