# 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