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