[pypy-commit] extradoc extradoc: Four steps again...
arigo
noreply at buildbot.pypy.org
Sun Aug 19 14:08:40 CEST 2012
Author: Armin Rigo <arigo at tunes.org>
Branch: extradoc
Changeset: r4710:8b36a557704d
Date: 2012-08-19 14:08 +0200
http://bitbucket.org/pypy/extradoc/changeset/8b36a557704d/
Log: Four steps again...
diff --git a/talk/stm2012/stmimpl.rst b/talk/stm2012/stmimpl.rst
--- a/talk/stm2012/stmimpl.rst
+++ b/talk/stm2012/stmimpl.rst
@@ -405,7 +405,7 @@
Committing
------------------------------------
-Committing is a five-steps process:
+Committing is a four-steps process:
1. We first find all global objects with a local copy that has been
written to, and mark them "locked" by putting in their ``h_revision``
@@ -414,18 +414,16 @@
2. We atomically increase the global time (with LOCK CMPXCHG).
-3. We prepare the local versions of the global modified objects to
-become the next head of the chained lists, by fixing the headers.
-
-4. We check again that all read objects are still up-to-date, i.e. have
+3. We check again that all read objects are still up-to-date, i.e. have
not been replaced by a revision more recent than ``start_time``. (This
is the last chance to abort a conflicting transaction; if we do, we have
to remember to release the locks.)
-5. Finally, we unlock the global objects by overriding their
+4. Finally, we unlock the global objects by overriding their
``h_revision``. We put there now a pointer to the corresponding
-previously-local object. The previously-local object plays from now on
-the role of the global head of the chained list.
+previously-local object, and the previously-local object's header is
+fixed so that it plays from now on the role of the global head of the
+chained list.
In pseudo-code::
More information about the pypy-commit
mailing list