Skip to content
  • Simon Marlow's avatar
    [project @ 2001-08-01 12:07:50 by simonmar] · f7828a36
    Simon Marlow authored
    Signification cleanup & rewrite of CmLink.
    
    Fixes at least one bug: the PersistentLinkerState could sometimes get
    out of step with the RTS's idea of which modules were loaded, leading
    to an unloadObj failure when we try to unload the same module twice.
    This could happen if a ^C exception is received in the middle of a
    :load.
    
    Fixed by keeping the part of the linker's state that must match up
    with the RTS's internal state entirely private to CmLink, stored in a
    global variable.  The operations in CmLink which manipulate this state
    are now wrapped by Exception.block, and so are safe from ^C
    exceptions.
    f7828a36