| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Types for referring to remote objects in Remote GHCi. For more details, see Note [External GHCi pointers] in compilerGHCRuntime/Interpreter.hs
For details on Remote GHCi, see Note [Remote GHCi] in compilerGHCRuntime/Interpreter.hs.
toRemotePtr :: Ptr a -> RemotePtr a Source
fromRemotePtr :: RemotePtr a -> Ptr a Source
castRemotePtr :: RemotePtr a -> RemotePtr b Source
A reference to a heap object. Potentially in a remote heap! These are allocated and freed explicitly.
mkRemoteRef :: a -> IO (RemoteRef a) Source
Make a reference to a local value that we can send remotely. This reference will keep the value that it refers to alive until freeRemoteRef is called.
localRef :: RemoteRef a -> IO a Source
Convert a RemoteRef to its carried type. Should only be used if the RemoteRef originated in this process.
freeRemoteRef :: RemoteRef a -> IO () Source
Release a RemoteRef that originated in this process
castRemoteRef :: RemoteRef a -> RemoteRef b Source
data ForeignRef a Source
An RemoteRef with a finalizer
| NFData (ForeignRef a) Source | |
Defined in GHCi.RemoteTypes Methodsrnf :: ForeignRef a -> () Source | |
mkForeignRef :: RemoteRef a -> IO () -> IO (ForeignRef a) Source
Create a ForeignRef from a RemoteRef. The finalizer should arrange to call freeRemoteRef on the RemoteRef. (since this function needs to be called in the process that created the RemoteRef, it cannot be called directly from the finalizer).
withForeignRef :: ForeignRef a -> (RemoteRef a -> IO b) -> IO b Source
Use a ForeignRef
finalizeForeignRef :: ForeignRef a -> IO () Source
castForeignRef :: ForeignRef a -> ForeignRef b Source
unsafeForeignRefToRemoteRef :: ForeignRef a -> RemoteRef a Source
type HValueRef = RemoteRef HValue Source
type ForeignHValue = ForeignRef HValue Source
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.12.1/docs/libraries/ghci-9.12.1-fde5/GHCi-RemoteTypes.html