VirtualBox

Changeset 25611 in vbox for trunk/src/VBox/Runtime/include


Ignore:
Timestamp:
Dec 31, 2009 2:54:25 PM (15 years ago)
Author:
vboxsync
Message:

iprt/lockvaldiator,++: owner record management and some other stuff. Disabled lock strictness for everyeone but me.

Location:
trunk/src/VBox/Runtime/include/internal
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/include/internal/lockvalidator.h

    r25609 r25611  
    5555 * This is part of the RTTHREADINT structure.
    5656 */
    57 typedef struct RTLOCKVALIDATORPERTHREAD
     57typedef struct RTLOCKVALPERTHREAD
    5858{
     59    /** Where we are blocking. */
     60    RTLOCKVALSRCPOS                 SrcPos;
    5961    /** What we're blocking on. */
    6062    PRTLOCKVALRECUNION volatile     pRec;
    61     /** Where we are blocking. */
    62     RTLOCKVALSRCPOS                 SrcPos;
    6363    /** Number of registered write locks, mutexes and critsects that this thread owns. */
    6464    int32_t volatile                cWriteLocks;
    6565    /** Number of registered read locks that this thread owns, nesting included. */
    6666    int32_t volatile                cReadLocks;
    67 } RTLOCKVALIDATORPERTHREAD;
     67    /** Bitmap indicating which entires are free (set) and allocated (clear). */
     68    uint32_t                        bmFreeShrdOwners;
     69    /** Reserved for alignment purposes. */
     70    uint32_t                        u32Reserved;
     71    /** Statically allocated shared owner records */
     72    RTLOCKVALRECSHRDOWN             aShrdOwners[32];
     73} RTLOCKVALPERTHREAD;
    6874
    6975
     76DECLHIDDEN(void)    rtLockValidatorInitPerThread(RTLOCKVALPERTHREAD *pPerThread);
    7077DECLHIDDEN(void)    rtLockValidatorSerializeDestructEnter(void);
    7178DECLHIDDEN(void)    rtLockValidatorSerializeDestructLeave(void);
  • trunk/src/VBox/Runtime/include/internal/magics.h

    r25608 r25611  
    6767/** The magic value for RTLOCALIPCSERVER::u32Magic. (Katsuhiro Otomo) */
    6868#define RTLOCALIPCSESSION_MAGIC         UINT32_C(0x19530414)
    69 /** The magic value for RTLOCKVALIDATORREC::u32Magic. (Vladimir Vladimirovich Nabokov) */
     69/** The magic value for RTLOCKVALRECEXCL::u32Magic. (Vladimir Vladimirovich Nabokov) */
    7070#define RTLOCKVALRECEXCL_MAGIC          UINT32_C(0x18990422)
    71 /** The dead magic value for RTLOCKVALIDATORREC::u32Magic. */
     71/** The dead magic value for RTLOCKVALRECEXCL::u32Magic. */
    7272#define RTLOCKVALRECEXCL_MAGIC_DEAD     UINT32_C(0x19770702)
    7373/** The magic value for RTLOCKVALRECSHRD::u32Magic. (Agnar Mykle) */
  • trunk/src/VBox/Runtime/include/internal/strict.h

    r25482 r25611  
    3535 * @{ */
    3636
     37#ifdef DEBUG_bird /** @todo reenable this for everyone. Just being a little be cautious right now... */
    3738/** @def RTCRITSECT_STRICT
    3839 * Enables strictness checks and lock accounting of the RTCritSect API.
     
    5758# define RTSEMRW_STRICT
    5859#endif
    59 
     60#endif /* DEBUG_bird */
    6061
    6162
  • trunk/src/VBox/Runtime/include/internal/thread.h

    r25597 r25611  
    9292#ifdef IN_RING3
    9393    /** The lock validator data. */
    94     RTLOCKVALIDATORPERTHREAD LockValidator;
     94    RTLOCKVALPERTHREAD      LockValidator;
    9595#endif /* IN_RING3 */
    9696#ifdef IPRT_WITH_GENERIC_TLS
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