Using the holidays for a 2-week coding session. Writing a new transactional memory manager that’s O(1) for all operations, completely non-blocking and progress-guaranteeing, and uses atomics only for writes.
That’s the gist of my approach in C++. Do CAS as code runs, build up a CAS-undo list in case we abort, and ensure every CAS tracks transaction IDs and can abort and roll back other transactions and be aborted by them.
-
-
But to CAS a multi-word data structure, you need to either block or heap allocated it and GC-manage it, thus the need for an object manager and garbage collector.
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.