tlds
Transactional Operations for Linked Data Structures
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
anonymous_namespace{static.cpp} Namespace Reference

Functions

TM_FASTCALL uint32_t pol_ER ()
 
TM_FASTCALL uint32_t pol_E ()
 
TM_FASTCALL uint32_t pol_R ()
 
TM_FASTCALL uint32_t pol_X ()
 

Detailed Description

Here we define the static adaptivity policies. These do not use profiles, so they are very simple.

NB: these are interesting from a historical perspective, in that they were part of [Spear SPAA 2011]. However, subsequent work has shown that adapting on the basis of pathology avoidance (e.g., consecutive aborts) is not a good strategy on its own, because of the possibility of Toxic Transactions [Liu Transact 2011].

Function Documentation

TM_FASTCALL uint32_t anonymous_namespace{static.cpp}::pol_E ( )

This policy is suitable for workloads that need ELA semantics, but that don't need self-abort.

Here is the caller graph for this function:

TM_FASTCALL uint32_t anonymous_namespace{static.cpp}::pol_ER ( )

This policy is suitable for workloads that need ELA semantics and support for self-abort.

Here is the caller graph for this function:

TM_FASTCALL uint32_t anonymous_namespace{static.cpp}::pol_R ( )

This policy is suitable for workloads that don't need strong semantics but do need self-abort.

Here is the caller graph for this function:

TM_FASTCALL uint32_t anonymous_namespace{static.cpp}::pol_X ( )

This policy is suitable for workloads that don't need strong semantics and also don't need support for self-abort.

Here is the caller graph for this function: