GHCi.RemoteTypes
| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Description
Types for referring to remote objects in Remote GHCi. For more details, see Note [External GHCi pointers] in compilerghciGHCi.hs
For details on Remote GHCi, see Note [Remote GHCi] in compilerghciGHCi.hs.
toRemotePtr :: Ptr a -> RemotePtr a Source
fromRemotePtr :: RemotePtr a -> Ptr a Source
castRemotePtr :: RemotePtr a -> RemotePtr b Source
Instances
A reference to a remote value. 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 an HValueRef to an HValue. Should only be used if the HValue originated in this process.
freeRemoteRef :: RemoteRef a -> IO () Source
Release an HValueRef that originated in this process
type HValueRef = RemoteRef HValue Source
toHValueRef :: RemoteRef a -> RemoteRef HValue Source
data ForeignRef a Source
An HValueRef with a finalizer
Instances
| NFData (ForeignRef a) | |
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 freeHValueRef on the HValueRef. (since this function needs to be called in the process that created the HValueRef, it cannot be called directly from the finalizer).
withForeignRef :: ForeignRef a -> (RemoteRef a -> IO b) -> IO b Source
Use a ForeignHValue
type ForeignHValue = ForeignRef HValue Source
unsafeForeignRefToRemoteRef :: ForeignRef a -> RemoteRef a Source
finalizeForeignRef :: ForeignRef a -> IO () Source
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.10.2/docs/html/libraries/ghci-8.10.2/GHCi-RemoteTypes.html