Skip to content
  • Igor Kushnir's avatar
    Make all DUChainReferenceCounting globals thread_local · 3c7257e5
    Igor Kushnir authored
    Move the variables into a simple new DUChainReferenceCounting class to
    avoid the repetition of the `thread_local` keyword.
    
    Reorder the declarations and initializations of two variables -
    refCountingHasAdditionalRanges and refCountingRanges - to minimize
    sizeof(DUChainReferenceCounting) while preserving the logic of the
    variable ordering and grouping within the class.
    
    Eliminate the mutex and the redundant dependency between threads.
    
    This should work perfectly if the reference counting of each object is
    confined to a single thread. This will break code that calls
    DUChainReferenceCounting functions on the same object from multiple
    threads. Hopefully such code does not exist.
    
    This change does not break any kdevelop or kdev-python tests.
    3c7257e5