PRELIMINARY
SYNOPSIS

        #include <rtlimits.h>

        void set_limits(int tag, int value, ...)
        void set_limits(int * limits)

DESCRIPTION
        Set the default runtime limits from the given arguments. The new
        limits will be in effect as the initial 'max limits' with the 
        next execution thread.
 
        The arguments can be given in two ways: as an array (like the one
        returned from query_limits(), or as a list of tagged values.
        The limit settings recognize two special values:

            LIMIT_UNLIMITED: the limit is deactivated
            LIMIT_KEEP:      the former setting is kept
 
        The efun causes a privilege violation ("set_limits", current_object,
        first

EXAMPLES
        set_limits( ({ 200000 }) )
        set_limits( LIMIT_EVAL, 200000 )
          --> set new default eval_cost limit to 200000
          
        set_limits( ({ LIMIT_UNLIMITED, LIMIT_KEEP, 5000 }) )
        set_limits( LIMIT_EVAL, LIMIT_UNLIMITED, LIMIT_ARRAY, LIMIT_KEEP,
                    LIMIT_MAPPING, 5000 )
          --> set new eval_cost limit to unlimited, keep the current
              array size limit, and limit mapping sizes to 5000.

HISTORY
        Introduced in LDMud 3.2.7.

SEE ALSO
        limited(E), query_limits(E)
