Message1932
Logged In: YES
user_id=7549
Hi John,
I have seen Tcl extension DLLs that set exit handlers get
called by Tcl after they were torn-down. NT and Win9x seem
to be a bit different in the order of what DLLs get torn-down.
here's a note from some old code of mine:
#ifdef __WIN32__
// It can happen that the HEAP could have already been
unloaded
// from an awkward teardown caused by a Ctrl+C or other.
Win32
// seems to do a teardown in reverse order and by the time
Tcl
// knows what's going on and Tcl_Finalize calls the exit
// handlers, this extension's data (heap?) has already been
// unloaded by the OS. Do a quick legal check on the
pointer
// first.
//
if (IsBadReadPtr(adapt, sizeof(T *))) return;
#endif
what's the back/stacktrace? who is calling
Tcl_FinalizeNotifier? And had anyone called it before during
the shutdown phase? I can't say with much confidence that
this is happening here, too. Maybe.. Could Tk be telling Tcl
shutdown? That's sort of backwards, if so.
I run w2k here, so I can't help in debugging from a test case.
tclsh with a threaded build doesn't even call Tcl_Finalize to
avoid all this! |
|
Date |
User |
Action |
Args |
2007-08-23 13:51:19 | admin | link | issue216289 messages |
2007-08-23 13:51:19 | admin | create | |
|