[GHC] #7787: modifyMVar does not restore value if callback returns error value