VirtualBox

Changeset 101925 in vbox for trunk/src/libs/xpcom18a4


Ignore:
Timestamp:
Nov 7, 2023 10:24:20 AM (15 months ago)
Author:
vboxsync
Message:

libs/xpcom: Get rid of PR_Lock support in nsAutoLock now that everything has been converted, bugref:10545

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/libs/xpcom18a4/xpcom/threads/nsAutoLock.h

    r101916 r101925  
    108108
    109109#include "nscore.h"
    110 #include "prlock.h"
    111 #include "prlog.h"
    112110
    113111#include <iprt/assert.h>
     
    135133class NS_COM nsAutoLock : public nsAutoLockBase {
    136134private:
    137     PRLock* mLock;
    138135    /** The IPRT fast mutex. */
    139136    RTSEMFASTMUTEX m_hMtx;
    140     PRBool mLocked;
     137    bool           m_fLocked;
    141138
    142139    // Not meant to be implemented. This makes it a compiler error to
     
    157154     * releases the lock.
    158155     *
    159      * @param aLock A valid PRLock* returned from the NSPR's
    160      * PR_NewLock() function.
     156     * @param hMtx A valid IPRT fast mutex.
    161157     **/
    162     nsAutoLock(PRLock* aLock)
    163         : nsAutoLockBase(aLock, eAutoLock),
    164           mLock(aLock),
    165           m_hMtx(NIL_RTSEMFASTMUTEX),
    166           mLocked(PR_TRUE) {
    167         Assert(mLock);
    168 
    169         // This will assert deep in the bowels of NSPR if you attempt
    170         // to re-enter the lock.
    171         PR_Lock(mLock);
    172     }
    173 
    174158    nsAutoLock(RTSEMFASTMUTEX hMtx)
    175159        : nsAutoLockBase(hMtx, eAutoLock),
    176           mLock(NULL),
    177160          m_hMtx(hMtx),
    178           mLocked(PR_TRUE) {
     161          m_fLocked(true) {
    179162        Assert(hMtx != NIL_RTSEMFASTMUTEX);
    180 
    181163        RTSemFastMutexRequest(m_hMtx);
    182164    }
    183165
    184166    ~nsAutoLock(void) {
    185         if (mLocked)
    186         {
    187             if (m_hMtx != NIL_RTSEMFASTMUTEX)
    188                 RTSemFastMutexRelease(m_hMtx);
    189             else
    190                 PR_Unlock(mLock);
    191         }
     167        if (m_fLocked)
     168            RTSemFastMutexRelease(m_hMtx);
    192169    }
    193170
     
    198175     **/ 
    199176    void lock() {
    200         PR_ASSERT(!mLocked);
    201         if (m_hMtx != NIL_RTSEMFASTMUTEX)
    202             RTSemFastMutexRequest(m_hMtx);
    203         else
    204             PR_Lock(mLock);
    205         mLocked = PR_TRUE;
     177        Assert(!m_fLocked);
     178        Assert(m_hMtx != NIL_RTSEMFASTMUTEX);
     179        RTSemFastMutexRequest(m_hMtx);
     180        m_fLocked = true;
    206181    }
    207182
     
    213188     **/
    214189     void unlock() {
    215         PR_ASSERT(mLocked);
    216         if (m_hMtx != NIL_RTSEMFASTMUTEX)
    217             RTSemFastMutexRelease(m_hMtx);
    218         else
    219             PR_Unlock(mLock);
    220         mLocked = PR_FALSE;
     190        Assert(m_fLocked);
     191        Assert(m_hMtx != NIL_RTSEMFASTMUTEX);
     192        RTSemFastMutexRelease(m_hMtx);
     193        m_fLocked = false;
    221194    }
    222195};
Note: See TracChangeset for help on using the changeset viewer.

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