Transactional Memory
Transactional Memory
Posted Jun 11, 2009 14:06 UTC (Thu) by tvld (guest, #59052)In reply to: Transactional Memory by wahern
Parent article: A look at two new languages: Vala and Clojure
First, compare-and-set (CAS, cmpxchg,...) is universal, as is LL/SC.
Therefore, you can build nonblocking STMs, and people actually do (see, for example, the paper describing DSTM (one of the first STMs)).
Therefore, you can build nonblocking STMs, and people actually do (see, for example, the paper describing DSTM (one of the first STMs)).
Assuming that your memory transactions don't block by waiting for external events to happen, no sane (S)TM will deadlock. Some might live-lock, but that is just a question of contention management, and not a principal limitation (remember that CAS is universal...).
Please actually do read the relevant literature.