diff options
author | Simon Marlow <marlowsd@gmail.com> | 2014-09-29 12:49:21 +0100 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2014-11-28 14:10:32 +0000 |
commit | 9e6e4796437a7fc23e83605a45db9b2663570123 (patch) | |
tree | b78db2642aed0c47bcbca124f99031fcb52d6d9d /includes | |
parent | b5e8b3b162b3ff15ae6caf1afc659565365f54a8 (diff) | |
download | haskell-9e6e4796437a7fc23e83605a45db9b2663570123.tar.gz |
Add purgeObj() to remove the symbol table entries for an object
This allows us to replace an object without actually unloading the old
object, which is necessary when we know we have references to the old
object so it can't be completely unloaded. Using unloadObj() would
cause the GC (CheckUnload) to repeatedly and fruitlessly try to unload
the old object.
Diffstat (limited to 'includes')
-rw-r--r-- | includes/rts/Linker.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/includes/rts/Linker.h b/includes/rts/Linker.h index c53ad4acc5..a0891f46f7 100644 --- a/includes/rts/Linker.h +++ b/includes/rts/Linker.h @@ -51,6 +51,9 @@ void *lookupSymbol( char *lbl ); /* delete an object from the pool */ HsInt unloadObj( pathchar *path ); +/* purge an object's symbols from the symbol table, but don't unload it */ +HsInt purgeObj( pathchar *path ); + /* add an obj (populate the global symbol table, but don't resolve yet) */ HsInt loadObj( pathchar *path ); |