| | | | | |

Multithreading at the Bookkeeping Data Level

  • Reference Counting:
    • If two threads have copies of a smart pointer, reference count increment needs to be locked: use ThreadingModel<T>::IntType and Atomic (locked) versions of increment
    • Threading too entangled to make separate policy (not enough orthoganality)
    • Incorporate into ownership policy: RefCounting and MultiThreadedRefCounting
  • Reference Linking:
    • The SmartPtr destructor needs to perform a classic doubly-linked list deletion, requiring access to data in up to two other SmartPtr objects
    • Can't manage this without mutexes
  • Loki does not have an ownership policy option for multithreaded reference linking

| | Top of Page | 10. Smart Pointers - 20 of 26