summaryrefslogtreecommitdiff
path: root/libitm/doc/tm-methods-and-method-groups.rst
diff options
context:
space:
mode:
Diffstat (limited to 'libitm/doc/tm-methods-and-method-groups.rst')
-rw-r--r--libitm/doc/tm-methods-and-method-groups.rst47
1 files changed, 0 insertions, 47 deletions
diff --git a/libitm/doc/tm-methods-and-method-groups.rst b/libitm/doc/tm-methods-and-method-groups.rst
deleted file mode 100644
index a9b56197a5b..00000000000
--- a/libitm/doc/tm-methods-and-method-groups.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-..
- Copyright 1988-2022 Free Software Foundation, Inc.
- This is part of the GCC manual.
- For copying conditions, see the copyright.rst file.
-
-TM methods and method groups
-****************************
-
-libitm supports several ways of synchronizing transactions with each other.
-These TM methods (or TM algorithms) are implemented in the form of
-subclasses of ``abi_dispatch``, which provide methods for
-transactional loads and stores as well as callbacks for rollback and commit.
-All methods that are compatible with each other (i.e., that let concurrently
-running transactions still synchronize correctly even if different methods
-are used) belong to the same TM method group. Pointers to TM methods can be
-obtained using the factory methods prefixed with ``dispatch_`` in
-:samp:`libitm_i.h`. There are two special methods, ``dispatch_serial`` and
-``dispatch_serialirr``, that are compatible with all methods because they
-run transactions completely in serial mode.
-
-TM method life cycle
-^^^^^^^^^^^^^^^^^^^^
-
-The state of TM methods does not change after construction, but they do alter
-the state of transactions that use this method. However, because
-per-transaction data gets used by several methods, ``gtm_thread`` is
-responsible for setting an initial state that is useful for all methods.
-After that, methods are responsible for resetting/clearing this state on each
-rollback or commit (of outermost transactions), so that the transaction
-executed next is not affected by the previous transaction.
-
-There is also global state associated with each method group, which is
-initialized and shut down (``method_group::init()`` and ``fini()``)
-when switching between method groups (see :samp:`retry.cc`).
-
-Selecting the default method
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The default method that libitm uses for freshly started transactions (but
-not necessarily for restarted transactions) can be set via an environment
-variable (:envvar:`ITM_DEFAULT_METHOD`), whose value should be equal to the name
-of one of the factory methods returning abi_dispatch subclasses but without
-the "dispatch\_" prefix (e.g., "serialirr" instead of
-``GTM::dispatch_serialirr()``).
-
-Note that this environment variable is only a hint for libitm and might not
-be supported in the future. \ No newline at end of file