VirtualBox

Changeset 101922 in vbox for trunk/src/libs/xpcom18a4/xpcom


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

libs/xpcom: Convert xptiInterfaceInfoManager.{cpp,h} to use RTSEMFASTMUTEX for locking, bugref:10545

Location:
trunk/src/libs/xpcom18a4/xpcom/reflect/xptinfo/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/libs/xpcom18a4/xpcom/reflect/xptinfo/src/xptiInterfaceInfoManager.cpp

    r1 r101922  
    111111{
    112112    return mWorkingSet.IsValid() &&
    113            mResolveLock &&
    114            mAutoRegLock &&
     113           mResolveLock != NIL_RTSEMFASTMUTEX &&
     114           mAutoRegLock != NIL_RTSEMFASTMUTEX &&
    115115           mInfoMonitor &&
    116            mAdditionalManagersLock;
     116           mAdditionalManagersLock != NIL_RTSEMFASTMUTEX;
    117117}       
    118118
     
    120120    :   mWorkingSet(aSearchPath),
    121121        mOpenLogFile(nsnull),
    122         mResolveLock(PR_NewLock()),
    123         mAutoRegLock(PR_NewLock()),
     122        mResolveLock(NIL_RTSEMFASTMUTEX),
     123        mAutoRegLock(NIL_RTSEMFASTMUTEX),
    124124        mInfoMonitor(nsAutoMonitor::NewMonitor("xptiInfoMonitor")),
    125         mAdditionalManagersLock(PR_NewLock()),
     125        mAdditionalManagersLock(NIL_RTSEMFASTMUTEX),
    126126        mSearchPath(aSearchPath)
    127127{
     128    int vrc = RTSemFastMutexCreate(&mResolveLock);
     129    AssertRC(vrc); RT_NOREF(vrc);
     130
     131    vrc = RTSemFastMutexCreate(&mAutoRegLock);
     132    AssertRC(vrc); RT_NOREF(vrc);
     133
     134    vrc = RTSemFastMutexCreate(&mAdditionalManagersLock);
     135    AssertRC(vrc); RT_NOREF(vrc);
     136
    128137    const char* statsFilename = PR_GetEnv("MOZILLA_XPTI_STATS");
    129138    if(statsFilename)
     
    164173    mWorkingSet.InvalidateInterfaceInfos();
    165174
    166     if(mResolveLock)
    167         PR_DestroyLock(mResolveLock);
     175    if(mResolveLock != NIL_RTSEMFASTMUTEX)
     176        RTSemFastMutexDestroy(mResolveLock);
    168177    if(mAutoRegLock)
    169         PR_DestroyLock(mAutoRegLock);
     178        RTSemFastMutexDestroy(mAutoRegLock);
    170179    if(mInfoMonitor)
    171180        nsAutoMonitor::DestroyMonitor(mInfoMonitor);
    172181    if(mAdditionalManagersLock)
    173         PR_DestroyLock(mAdditionalManagersLock);
     182        RTSemFastMutexDestroy(mAdditionalManagersLock);
    174183
    175184    gInterfaceInfoManager = nsnull;
  • trunk/src/libs/xpcom18a4/xpcom/reflect/xptinfo/src/xptiprivate.h

    r5962 r101922  
    890890        {NS_ADDREF(*aSearchPath = mSearchPath);}
    891891
    892     static PRLock* GetResolveLock(xptiInterfaceInfoManager* self = nsnull)
     892    static RTSEMFASTMUTEX GetResolveLock(xptiInterfaceInfoManager* self = nsnull)
    893893        {if(!self && !(self = GetInterfaceInfoManagerNoAddRef()))
    894894            return nsnull;
    895895         return self->mResolveLock;}
    896896
    897     static PRLock* GetAutoRegLock(xptiInterfaceInfoManager* self = nsnull)
     897    static RTSEMFASTMUTEX GetAutoRegLock(xptiInterfaceInfoManager* self = nsnull)
    898898        {if(!self && !(self = GetInterfaceInfoManagerNoAddRef()))
    899899            return nsnull;
     
    962962    nsCOMPtr<nsILocalFile>       mAutoRegLogFile;
    963963    PRFileDesc*                  mOpenLogFile;
    964     PRLock*                      mResolveLock;
    965     PRLock*                      mAutoRegLock;
     964    RTSEMFASTMUTEX               mResolveLock;
     965    RTSEMFASTMUTEX               mAutoRegLock;
    966966    PRMonitor*                   mInfoMonitor;
    967     PRLock*                      mAdditionalManagersLock;
     967    RTSEMFASTMUTEX               mAdditionalManagersLock;
    968968    nsSupportsArray              mAdditionalManagers;
    969969    nsCOMPtr<nsISupportsArray>   mSearchPath;
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