diff options
Diffstat (limited to 'rts/CloneStack.h')
-rw-r--r-- | rts/CloneStack.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/rts/CloneStack.h b/rts/CloneStack.h index 5f1c22039d..7e43d090d1 100644 --- a/rts/CloneStack.h +++ b/rts/CloneStack.h @@ -1,9 +1,10 @@ /* --------------------------------------------------------------------------- * - * (c) The GHC Team, 2001-2021 + * (c) The GHC Team, 2020-2021 * - * Stack snapshotting. - */ + * Stack snapshotting and decoding. (Cloning and unwinding.) + * + *---------------------------------------------------------------------------*/ #pragma once @@ -14,10 +15,18 @@ StgStack* cloneStack(Capability* capability, const StgStack* stack); void sendCloneStackMessage(StgTSO *tso, HsStablePtr mvar); +StgMutArrPtrs* decodeClonedStack(Capability *cap, StgStack* stack); + #include "BeginPrivate.h" #if defined(THREADED_RTS) void handleCloneStackMessage(MessageCloneStack *msg); #endif +StgWord getStackFrameCount(StgStack* stack); +StgWord getStackChunkClosureCount(StgStack* stack); +void copyPtrsToArray(Capability *cap, StgMutArrPtrs* arr, StgStack* stack); +StgClosure* createPtrClosure(Capability* cap, InfoProvEnt* ipe); +StgMutArrPtrs* allocateMutableArray(StgWord size); + #include "EndPrivate.h" |