RE: [tcljava-dev] Latest 1.3.0 build and INterp.evalFile()
Brought to you by:
mdejong
From: W. J. G. <gu...@ea...> - 2001-03-26 18:37:23
|
Mo, Here's the stack if it helps: _assert(void * 0x0e808054, void * 0x0e808010, unsigned int 293) line 256 JavaGetEnv() line 293 + 29 bytes FreeTclObject(Tcl_Obj * 0x000c68f8) line 185 + 5 bytes DeleteArray(Interp * 0x000bd048, char * 0x000a6c28, Var * 0x000b2c28, int 321) line 4631 + 93 bytes TclDeleteVars(Interp * 0x000bd048, Tcl_HashTable * 0x000cd0f8) line 4442 + 50 bytes TclTeardownNamespace(Namespace * 0x000cd068) line 736 + 18 bytes DeleteInterpProc(Tcl_Interp * 0x000bd048) line 963 + 12 bytes Tcl_EventuallyFree(int * 0x000bd048, void (char *)* 0x0e826995 DeleteInterpProc(Tcl_Interp *)) line 313 + 7 bytes Tcl_DeleteInterp(Tcl_Interp * 0x000bd048) line 901 + 14 bytes Java_tcl_lang_Interp_doDispose(const JNINativeInterface_ * * 0x08a2d884, _jobject * 0x0e7bfcf4, __int64 1044831918095061064) line 208 + 10 bytes 0082b871() 0082939a() 0082939a() 0082939a() JVM! 504d4eae() JVM! 5040e87a() JVM! 50430987() JVM! 5040e77f() JVM! 5040e4fd() JVM! 5041b998() JVM! 50447ba3() JVM! 50447b74() MSVCRT! 7800a3c0() KERNEL32! 77db2c18() > -----Original Message----- > From: tcl...@li... > [mailto:tcl...@li...]On Behalf Of Mo DeJong > Sent: Friday, March 23, 2001 1:36 AM > To: tcl...@li... > Subject: RE: [tcljava-dev] Latest 1.3.0 build and INterp.evalFile() > > > On Wed, 21 Mar 2001, W. John Guineau wrote: > > > Hi Mo, > > > > You mentioned previously on this (or another) list that there were some > > problems remaining in 1.3.0 to do with termination? > > Yeah, I think our multi-threaded startup stuff is ok. > It is the shutdown that seems to have problems. > > > Would that be the assert I'm seeing in the TclBlend.DLL at: > > > > src/native/javaCmd.c: > > > > TCLBLEND_EXTERN JNIEnv *JavaGetEnv() > > { > > ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey); > > assert(tsdPtr->initialized); > > return tsdPtr->currentEnv; > > } > > > > > > It seems to happen when calling Interp.destroy(). > > Humm, that says to me that the JavaGetEnv() method is getting > called after the thread has been cleaned up. Could you provide > a nice little test case for this problem? If you really want > to lend a hand, designing some test cases that will check > the startup and shutdown cases would really help. They > are tricky because they are not like any of the other tests. > Startup and shutdown tests might need to be run as separate > programs before running the normal "make check" rule. > > > Also - if I have a notifier thread sitting in > notifier.doOneEvent(), what's > > the recomended way to get it out? Right now, I just send it an > empty string > > to eval() and that causes the notifier.doOneEvent() while() loop to exit > > (taking the thread with it). > > Do you mean you want to make another thread exit from one that > you are in? I think you would to use the Thread package for > that. I think you send a thread::exit command to your target > thread using the thread::send command. My memory is a little > fuzzy in this area so I could be way off. > > http://dev.scriptics.com/ftp/thread//thread21.html > > Mo DeJong > Red Hat Inc > > _______________________________________________ > tcljava-dev mailing list > tcl...@li... > http://lists.sourceforge.net/lists/listinfo/tcljava-dev |