A reference to a value of type a.
Modulebase-4.20.2.0Haskell2010
GHC.StaticPtr
Symbolic references to values.
References to values are usually implemented with memory addresses, and this is practical when communicating values between the different pieces of a single process.
When values are communicated across different processes running in possibly different machines, though, addresses are no longer useful since each process may use different addresses to store a given value.
To solve such concern, the references provided by this module offer a key that can be used to locate the values on each process. Each process maintains a global table of references which can be looked up with a given key. This table is known as the Static Pointer Table. The reference can then be dereferenced to obtain the value.
The various communicating processes need to agree on the keys used to refer to the values in the Static Pointer Table, or lookups will fail. Only processes launched from the same program binary are guaranteed to use the same set of keys.
- 3 types
- 1 class
- 5 values
- Packagebase-4.20.2.0
- Exports9
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceStaticPtr.hs
Dereferences a static pointer.
A key for StaticPtrs that can be serialized and used with unsafeLookupStaticPtr.
Miscellaneous information available for debugging purposes.
Constructors
StaticPtrInfospInfoUnitId :: StringPackage key of the package where the static pointer is defined
spInfoModuleName :: StringName of the module where the static pointer is defined
spInfoSrcLoc :: (Int, Int)Source location of the definition of the static pointer as a
(Line, Column)pair.
Instances1Show
Show StaticPtrInfoDefined in ghc-internal-9.1003.0 · GHC.Internal.StaticPtr
StaticPtrInfo of the given StaticPtr.
A list of all known keys.
A class for things buildable from static pointers.
GHC wraps each use of the static keyword with
fromStaticPtr. Because the static keyword requires its argument
to be an instance of Typeable, fromStaticPtr carries a
Typeable constraint as well.
Methods
fromStaticPtr :: Typeable a => StaticPtr a -> p a