Package org.multiverse

## Interface MultiverseConstants

- All Known Subinterfaces:
    `GammaConstants`, `GammaObject`, `GammaTxnExecutor`, `OrElseBlock`, `TxnExecutor`
  All Known Implementing Classes:
    `AbstractGammaObject`, `AbstractGammaTxnExecutor`, `BaseGammaTxnRef`, `Bugshaker`, `FatFixedLengthGammaTxn`, `FatGammaTxnExecutor`, `FatMonoGammaTxn`, `FatVariableLengthGammaTxn`, `GammaOrElseBlock`, `GammaTxn`, `GammaTxnBoolean`, `GammaTxnConfig`, `GammaTxnDouble`, `GammaTxnInteger`, `GammaTxnLong`, `GammaTxnPool`, `GammaTxnRef`, `LeanFixedLengthGammaTxn`, `LeanGammaTxnExecutor`, `LeanMonoGammaTxn`, `LockMode`, `Tranlocal`

      public interface MultiverseConstants

  An interface containing global constants. It is a final instead of something mutable so that the JIT can completely remove code if some condition has not been met. The advantage is that you don't have to pay to price for adding some kind of check, if it isn't used. The problem is that the scope is all classes loaded by some classloader, share the same configuration. So one STM implementation with sanity checks enabled and the other not, is not possible.

  It is an interface so that is can be 'implemented' for easier access.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static int` | `LOCKMODE_EXCLUSIVE` |
    `static int` | `LOCKMODE_NONE` |
    `static int` | `LOCKMODE_READ` |
    `static int` | `LOCKMODE_WRITE` |
    `static boolean` | `SHAKE_BUGS` | Indicates of the bugshaker is enabled (for more information see the `Bugshaker`.
    `static int` | `SPIN_YIELD` | Indicates how often the system should yield when it is spinning.
    `static boolean` | `TRACING_ENABLED` | Indicates if tracing (so seeing what is going on inside transactions) is enabled.

- - ### Field Detail

    - #### SHAKE_BUGS

          static final boolean SHAKE_BUGS

      Indicates of the bugshaker is enabled (for more information see the `Bugshaker`. If disabled, no overhead because it can be removed by the JIT.

    - #### TRACING_ENABLED

          static final boolean TRACING_ENABLED

      Indicates if tracing (so seeing what is going on inside transactions) is enabled. Normally this causes overhead of not used, with this flag the complete tracing logic can be removed by the JIT if disabled).

    - #### SPIN_YIELD

          static final int SPIN_YIELD

      Indicates how often the system should yield when it is spinning. When a thread is yielded, it gives the opportunity to another thread to make progress.

    - #### LOCKMODE_NONE

          static final int LOCKMODE_NONE

      See Also:
        Constant Field Values

    - #### LOCKMODE_READ

          static final int LOCKMODE_READ

      See Also:
        Constant Field Values

    - #### LOCKMODE_WRITE

          static final int LOCKMODE_WRITE

      See Also:
        Constant Field Values

    - #### LOCKMODE_EXCLUSIVE

          static final int LOCKMODE_EXCLUSIVE

      See Also:
        Constant Field Values