@@ -699,6 +699,7 @@ readHoldTracked h = do
699 result <- liftIO $ readIORef $ holdValue h
699 result <- liftIO $ readIORef $ holdValue h
700 askInvalidator >>= mapM_ (\wi -> liftIO $ modifyIORef' (holdInvalidators h) (wi:))
700 askInvalidator >>= mapM_ (\wi -> liftIO $ modifyIORef' (holdInvalidators h) (wi:))
701 askParentsRef >>= mapM_ (\r -> liftIO $ modifyIORef' r (SomeBehaviorSubscribed (BehaviorSubscribedHold h) :))
701 askParentsRef >>= mapM_ (\r -> liftIO $ modifyIORef' r (SomeBehaviorSubscribed (BehaviorSubscribedHold h) :))
702+ liftIO $ touch h -- Otherwise, if this gets inlined enough, the hold's parent reference may get collected
702 return result
703 return result
704{-# INLINABLE readBehaviorUntracked #-}
705{-# INLINABLE readBehaviorUntracked #-}