2005-03-20  Alexandra Ellwood  <lxs@mit.edu>

	* threads.c (thread_termination): Free array of pointers
	to thread-specific data (t) on thread termination.  Use
	existing mutex to prevent the deletion of the array from
	interfering with the global list of thread specific data
	(used for library termination).

2005-02-08  Ken Raeburn  <raeburn@mit.edu>

	* threads.c (k5_key_delete) [pthread case]: Reset flags and
	destructor function pointer to unset state.
	(krb5int_thread_support_init, krb5int_thread_support_fini): If
	SHOW_INITFINI_FUNCS is defined, print some tracing messages.

2005-01-17  Jeffrey Altman <jaltman@mit.edu>

        * threads.c: implement cleanup of static vars on library
                unload (for Windows)

2004-12-15  Jeffrey Altman <jaltman@mit.edu>

        * Makefile.in: rename krb5support_32.dll to k5sprt32.dll

2004-10-25  Ken Raeburn  <raeburn@mit.edu>

	* libkrb5support.exports: Export krb5int_fac, _lock_fac,
	_unlock_fac.

2004-08-08  Ken Raeburn  <raeburn@mit.edu>

	* threads.c (GET_NO_PTHREAD_TSD) [!HAVE_PRAGMA_WEAK_REF]: Macro
	result type should be pointer to tsd_block.

2004-07-31  Ken Raeburn  <raeburn@mit.edu>

	* threads.c (krb5int_thread_support_init): Do finish
	initialization after key creation in POSIX case.

2004-07-23  Ken Raeburn  <raeburn@mit.edu>

	* fake-addrinfo.c (krb5int_fac): Initialize the mutex.
	(krb5int_init_fac, krb5int_fini_fac): New functions; finish
	initializing or destroy the mutex.
	(krb5int_lock_fac, krb5int_unlock_fac): New functions; lock the
	mutex after calling krb5int_call_thread_support_init, or unlock
	it.
	* threads.c (krb5int_call_thread_support_init): New function.
	(krb5int_init_fac, krb5int_fini_fac): Declare.
	(krb5int_thread_support_init, krb5int_thread_support_fini): Call
	them.

2004-07-19  Ken Raeburn  <raeburn@mit.edu>

	* fake-addrinfo.c: New file.
	* Makefile.in (STLIBOBJS, LIBOBJS, SRCS): Add it.

2004-07-06  Ken Raeburn  <raeburn@mit.edu>

	* threads.c (struct tsd_block) [_WIN32]: Define.
	(k5_setspecific) [_WIN32]: Don't fill in a 'next' field.  Fix
	variable reference for TSD key.

2004-06-24  Ken Raeburn  <raeburn@mit.edu>

	* threads.c: Reorganize code: One definition of each function,
	with per-platform conditional tests inside, instead of
	per-platform definitions for each function.  Combine common
	aspects of each function across platforms.

2004-06-21  Ken Raeburn  <raeburn@mit.edu>

	* threads.c (key_lock): Change to a k5_mutex_t.
	(k5_key_register): Use k5_ lock routines.
	(pthread_getspecific, pthread_setspecific, pthread_key_create,
	pthread_key_delete) [HAVE_PRAGMA_WEAK_REF]: Declare weak.
	(tsd_if_single) [HAVE_PRAGMA_WEAK_REF]: New variable.
	(krb5int_thread_support_init): Do pthread key creation only if
	pthread code is loaded.
	(krb5int_thread_support_fini): Do pthread key deletion only if
	pthread code is loaded.
	(k5_key_register, k5_getspecific, k5_setspecific): Use
	tsd_if_single when pthread code is not loaded.

2004-06-17  Ken Raeburn  <raeburn@mit.edu>

	* Makefile.in (BUILDTOP, LIBNAME, XTRA, OBJFILE): Define for
	Windows.
	(LIBOBJS): Define.
	($(BUILDTOP)/include/krb5/autoconf.h): Disable rule on Windows.

	* threads.c (tls_idx, key_lock, destructors, destructors_set): New
	variables for Windows.
	(krb5int_thread_support_init, krb5int_thread_support_fini,
	k5_key_register, k5_getspecific, k5_setspecific, k5_key_delete,
	krb5int_thread_detach_hook): New functions for Windows.  Some are
	just placeholders.

2004-06-14  Ken Raeburn  <raeburn@mit.edu>

	* libkrb5support.exports: Drop krb5int_foreach_localaddr.

2004-06-04  Ken Raeburn  <raeburn@mit.edu>

	* Makefile.in (LIBBASE): Renamed from LIB.

2004-05-05  Ken Raeburn  <raeburn@mit.edu>

	* threads.c (krb5int_thread_support_fini) [!ENABLE_THREADS]:
	Provide a dummy function for now.

	* foreachaddr.c: Deleted.  Code moved to lib/krb5/os/localaddr.c.
	* fake-addrinfo.c: Deleted.
	* Makefile.in (SRCS, STLIBOBJS): Updated.

2004-05-04  Ken Raeburn  <raeburn@mit.edu>

	* New directory.
	* Makefile.in: New file.
	* threads.c: New file.  Thread-specific data support.
	* fake-addrinfo.c: New file.  Placeholder.
	* foreachaddr.c: New file, based on include/foreachaddr.c.
	* libkrb5support.exports: New file.

	* threads.c (k5_key_register, destructors, k5_setspecific)
	[!ENABLE_THREADS]: Update to fit declarations.

	* Makefile.in (SHLIB_EXPLIBS): Include $(LIBS).
	(SHLIB_RDIRS): Use $(KRB5_LIBDIR), for lack of anything better.
