Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch win64-unloadTcl Excluding Merge-Ins
This is equivalent to a diff from 1a30da30db to 0013d9ccb6
2013-09-27
| ||
08:52 | Disable use of the unloadTcl function on 64-bit Windows, since the underlying MinGW issue does not manifest there. check-in: ba779faf48 user: mistachkin tags: trunk | |
07:49 | unloadTcl is only needed on Win32, not for Win64 or any other platform. Closed-Leaf check-in: 0013d9ccb6 user: jan.nijtmans tags: win64-unloadTcl | |
04:08 | Make an exception in the spider protection code for Opera Mini. check-in: 1a30da30db user: joel tags: trunk | |
2013-09-26
| ||
08:09 | Rename the makefile variable BROKEN_MINGW_CMDLINE (not the C define) to more accurately reflect its usage. check-in: 4137f4cda9 user: mistachkin tags: trunk | |
Changes to src/main.c.
︙ | ︙ | |||
344 345 346 347 348 349 350 | } /* ** atexit() handler which frees up "some" of the resources ** used by fossil. */ static void fossil_atexit(void) { | | | | 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 | } /* ** atexit() handler which frees up "some" of the resources ** used by fossil. */ static void fossil_atexit(void) { #if defined(_WIN32) && !defined(_WIN64) && defined(FOSSIL_ENABLE_TCL) && defined(USE_TCL_STUBS) /* ** If Tcl is compiled on Windows using the latest MinGW, Fossil can crash ** when exiting while a stubs-enabled Tcl is still loaded. This is due to ** a bug in MinGW, see: ** ** http://comments.gmane.org/gmane.comp.gnu.mingw.user/41724 ** ** The workaround is to manually unload the loaded Tcl library prior to ** exiting the process. Win64 is not affected. */ unloadTcl(g.interp, &g.tcl); #endif #ifdef FOSSIL_ENABLE_JSON cson_value_free(g.json.gc.v); memset(&g.json, 0, sizeof(g.json)); #endif |
︙ | ︙ |
Changes to src/th_tcl.c.
︙ | ︙ | |||
866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 | Tcl_DeleteInterp(tclInterp); tclContext->interp = tclInterp = 0; return TH_ERROR; } return TH_OK; } /* ** Finalizes and unloads the previously loaded Tcl library, if applicable. */ int unloadTcl( Th_Interp *interp, void *pContext ){ struct TclContext *tclContext = (struct TclContext *)pContext; Tcl_Interp *tclInterp; | > < < < < < < < < < | < < < < < < > > > > > | < > | 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 | Tcl_DeleteInterp(tclInterp); tclContext->interp = tclInterp = 0; return TH_ERROR; } return TH_OK; } #if defined(_WIN32) && !defined(_WIN64) && defined(FOSSIL_ENABLE_TCL) && defined(USE_TCL_STUBS) /* ** Finalizes and unloads the previously loaded Tcl library, if applicable. */ int unloadTcl( Th_Interp *interp, void *pContext ){ struct TclContext *tclContext = (struct TclContext *)pContext; Tcl_Interp *tclInterp; void *library; if ( !tclContext ){ Th_ErrorMessage(interp, "invalid Tcl context", (const char *)"", 0); return TH_ERROR; } /* ** If the Tcl interpreter has been created, formally delete it now. */ tclInterp = tclContext->interp; if ( tclInterp ){ Tcl_DeleteInterp(tclInterp); tclContext->interp = 0; } /* ** If Tcl is compiled on Windows using the latest MinGW, Fossil can crash ** when exiting while a stubs-enabled Tcl is still loaded. This is due to ** a bug in MinGW, see: ** ** http://comments.gmane.org/gmane.comp.gnu.mingw.user/41724 ** ** The workaround is to manually unload the loaded Tcl library prior to ** exiting the process. */ library = tclContext->library; if( library ){ /* ** If the Tcl library is not finalized prior to unloading it, a deadlock ** can occur in some circumstances (i.e. the [clock] thread is running). */ tclContext->xFinalize(); dlclose(library); tclContext->library = 0; } return TH_OK; } #endif /* ** Register the Tcl language commands with interpreter interp. ** Usually this is called soon after interpreter creation. */ int th_register_tcl( Th_Interp *interp, |
︙ | ︙ |