#  Copyright (c) 1990 The Regents of the University of California.
#  Copyright (c) 1994-1996 Sun Microsystems, Inc.
#  See the file "license.terms" for information on usage and redistribution
#  of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
#

=head1 NAME

Tk_FreeXId - make X resource identifier available for reuse

=for category C Programming

=head1 SYNOPSIS

B<#include E<lt>tk.hE<gt>>

B<Tk_FreeXId(>I<display, id>B<)>

=head1 ARGUMENTS

=over 4

=item Display *display (in)

Display for which I<id> was allocated.

=item XID id (in)

Identifier of X resource (window, font, pixmap, cursor, graphics
context, or colormap) that is no longer in use.

=back

=head1 DESCRIPTION

The default allocator for resource identifiers provided by Xlib is very
simple-minded and does not allow resource identifiers to be re-used.
If a long-running application reaches the end of the resource id
space, it will generate an X protocol error and crash.
Tk replaces the default id allocator with its own allocator, which
allows identifiers to be reused.
In order for this to work, B<Tk_FreeXId> must be called to
tell the allocator about resources that have been freed.
Tk automatically calls B<Tk_FreeXId> whenever it frees a
resource, so if you use procedures like B<Tk_GetFontStruct>,
B<Tk_GetGC>, and B<Tk_GetPixmap> then you need not call
B<Tk_FreeXId>.
However, if you allocate resources directly from Xlib, for example
by calling B<XCreatePixmap>, then you should call B<Tk_FreeXId>
when you call the corresponding Xlib free procedure, such as
B<XFreePixmap>.
If you don't call B<Tk_FreeXId> then the resource identifier will
be lost, which could cause problems if the application runs long enough
to lose all of the available identifiers.

=head1 KEYWORDS

resource identifier
