Mark Volkmann's Software Transactional Memory (STM) Page
This page contains resources related to
Software Transactional Memory.
Article Change History
- 9/1/09 - fixed lots of reported typos
- 9/2/09 - clarified that race conditions are errors
- 9/2/09 - added a paragraph explaining that Clojure STM
uses both locks and a lock-free strategy
- 9/2/09 - clarified that
the TVal next field refers to a newer commited value and
the TVal prior field refers to an older commited value
- 9/2/09 - clarified the reason that
RegEx extends Error instead of Exception
- 9/2/09 - clarified the use of a timeout
within the blockAndBail method of LockingTransaction
- 9/2/09 - in the discussion of the first commit step
within the description of the LockingTransaction run method,
explained how the timing of an ensure call can result in a retry
and added a question about why that is allowed
- 9/2/09 - resolved the question about why the
sets field in LockingTransaction is needed
instead of just using the keys in the vals field map
- 9/4/09 - noted that getHistoryCount method could
acquired a read lock instead of a write lock