SYNOPSIS
        varargs void notify_shutdown (string crash_reason)

DESCRIPTION
        Notify the master about an immediate shutdown. If <crash_reason> is 0,
        it is a normal shutdown, otherwise it is a crash and <crash_reason>
        gives a hint at the reason.

        The function has the opportunity to perform any cleanup operation,
        like informing the mudwho server that the mud is down. This can not be
        done when remove_player() is called because the udp connectivity is
        already gone then.

        If the gamedriver shuts down normally, this is the last function
        called before the mud shuts down the udp connections and the accepting
        socket for new players.

        If the gamedriver crashes, this is the last function called before the
        mud attempts to dump core and exit. WARNING: Since the driver is in an
        unstable state, this function may not be able to run to completion!
        The following crash reasons are defined:
          "Fatal Error": an internal sanity check failed.

HISTORY
        LDMud 3.2.9 added the <crash_reason> argument and that the function
        is called for a crash at all.

SEE ALSO
        slow_shut_down(M), remove_player(M),
