Index: generic/nsf.c =================================================================== diff -u -r75ac8b23b5aca02319f4dda1678082c0334bedc4 -r6a52879a99a2fd5bc2e987d5b1149f69d35f02d9 --- generic/nsf.c (.../nsf.c) (revision 75ac8b23b5aca02319f4dda1678082c0334bedc4) +++ generic/nsf.c (.../nsf.c) (revision 6a52879a99a2fd5bc2e987d5b1149f69d35f02d9) @@ -31706,9 +31706,12 @@ NsfStringIncrFree(&rst->iss); /* - * Free all data in the pointer converter. + * Free all data in the hash tables managing pointer converters, + * enumerations, and method definitions. */ Nsf_PointerExit(interp); + Nsf_EnumerationTypeRelease(interp); + Nsf_CmdDefinitionRelease(interp); #if defined(NSF_PROFILE) NsfProfileFree(interp); @@ -31753,9 +31756,6 @@ } } #endif - - Nsf_EnumerationTypeRelease(interp); - Nsf_CmdDefinitionRelease(interp); Tcl_Interp_flags(interp) = flags; Tcl_Release(interp); Index: generic/nsfCmdDefinitions.c =================================================================== diff -u -ra2021fcacd45bfbbe0d2dc11061e2a374c49726f -r6a52879a99a2fd5bc2e987d5b1149f69d35f02d9 --- generic/nsfCmdDefinitions.c (.../nsfCmdDefinitions.c) (revision a2021fcacd45bfbbe0d2dc11061e2a374c49726f) +++ generic/nsfCmdDefinitions.c (.../nsfCmdDefinitions.c) (revision 6a52879a99a2fd5bc2e987d5b1149f69d35f02d9) @@ -1,8 +1,9 @@ /* * nsfCmdDefinitions.c -- * - * Provide an API for registering method definitions - * and obtaining these meta-data for introspection. + * Provide an API for registering method definitions and obtaining these + * meta-data for introspection. Method definitions are shared by all + * threads/interps. Access is governed by a mutex lock. * * Copyright (C) 2014-2016 Gustaf Neumann * Copyright (C) 2016 Stefan Sobernig Index: generic/nsfEnumerationType.c =================================================================== diff -u -ra2021fcacd45bfbbe0d2dc11061e2a374c49726f -r6a52879a99a2fd5bc2e987d5b1149f69d35f02d9 --- generic/nsfEnumerationType.c (.../nsfEnumerationType.c) (revision a2021fcacd45bfbbe0d2dc11061e2a374c49726f) +++ generic/nsfEnumerationType.c (.../nsfEnumerationType.c) (revision 6a52879a99a2fd5bc2e987d5b1149f69d35f02d9) @@ -1,8 +1,9 @@ /* * nsfEnumerationType.c -- * - * Provide an API for registering enumeration types - * and obtaining their domains. + * Provide an API for registering enumeration types and obtaining their + * domains. Enumeration types are shared by all threads/interps. Access + * is governed by a mutex lock. * * Copyright (C) 2014 Gustaf Neumann * Copyright (C) 2016 Stefan Sobernig