base-4.22.0.0: src/GHC/Weak/Finalize.hs
{-# LANGUAGE MagicHash #-}
module GHC.Weak.Finalize
( -- * Handling exceptions
-- | When an exception is thrown by a finalizer called by the
-- garbage collector, GHC calls a global handler which can be set with
-- 'setFinalizerExceptionHandler'. Note that any exceptions thrown by
-- this handler will be ignored.
setFinalizerExceptionHandler
, getFinalizerExceptionHandler
, printToHandleFinalizerExceptionHandler
-- * Internal
, GHC.Weak.Finalize.runFinalizerBatch
) where
import GHC.Internal.Weak.Finalize
-- These imports can be removed once runFinalizerBatch is removed,
-- as can MagicHash above.
import GHC.Internal.Base (Int, Array#, IO, State#, RealWorld)
{-# DEPRECATED runFinalizerBatch
"This function is internal to GHC. It will not be exported in future." #-}
-- | Run a batch of finalizers from the garbage collector. Given an
-- array of finalizers and the length of the array, just call each one
-- in turn.
--
-- This is an internal detail of the GHC RTS weak pointer finaliser
-- mechanism. It should no longer be exported from base. There is no
-- good reason to use it. It will be removed in the next major version
-- of base (4.23.*).
--
-- See <https://github.com/haskell/core-libraries-committee/issues/342>
--
runFinalizerBatch :: Int
-> Array# (State# RealWorld -> State# RealWorld)
-> IO ()
runFinalizerBatch = GHC.Internal.Weak.Finalize.runFinalizerBatch