Make finalizers more reliable.
ClosedPublic

Authored by Phyx on May 14 2018, 3:56 PM.

Details

Summary

Ignore any errors thrown by finalizers when running them.

This prevents a faulty finalizer from stopping the rest being called.

Test Plan

./validate, new test T13167

Diff Detail

Repository
rGHC Glasgow Haskell Compiler
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
Phyx created this revision.May 14 2018, 3:56 PM
Phyx updated this revision to Diff 16417.May 14 2018, 4:02 PM
  • add newlines
bgamari accepted this revision.May 14 2018, 4:40 PM

Yes, this looks quite reasonable to me.

This revision is now accepted and ready to land.May 14 2018, 4:40 PM
Phyx updated this revision to Diff 16420.May 14 2018, 4:57 PM
  • fix cleanup error
Phyx added a comment.May 15 2018, 2:28 AM

*sigh* the context diff is confusing it. I'll pick it out of my I/O manager tree and resubmit when I get home.

Phyx edited the summary of this revision. (Show Details)May 15 2018, 2:44 AM
simonmar accepted this revision.May 15 2018, 7:56 AM

Thanks for this!

bgamari requested changes to this revision.May 15 2018, 12:10 PM

Do you think you could rebase this on top of master? It seems not to apply currently.

This revision now requires changes to proceed.May 15 2018, 12:10 PM
Phyx updated this revision to Diff 16432.May 15 2018, 5:45 PM
  • rebase on master
bgamari accepted this revision.May 15 2018, 8:20 PM

Looks good.

This revision is now accepted and ready to land.May 15 2018, 8:20 PM
This revision was automatically updated to reflect the committed changes.