In object-oriented languages, a special method for performing cleanup which might (non-deterministically) be called during object destruction