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
|