From: <wa...@ma...> - 2002-12-03 21:42:29
|
Hello! I need help to figure out how I can stop or interrupt embedded Jython interpreter. I use Jython interpreter in my program to execute Jython scripts and need to stop it in any time. Does anyone know about it? Thanks. |
From: Matt P. <Payne@MattPayne.org> - 2002-12-03 22:00:28
|
Quoting áÌÅËÓÅÊ äÏÌÇÏ× <wa...@ma...>: > Hello! > > I need help to figure out how I can stop or interrupt embedded Jython > interpreter. I use Jython interpreter in my program to execute Jython scripts > and need to stop it in any time. Does anyone know about it? > > Thanks. Great question! Why not run the interpreter on it's own thread and kill the thread when needed? If no one emails "I've done that.... ", I'll code this up and report back. -Matt |
From: Ype K. <yp...@xs...> - 2002-12-03 22:34:41
|
On Tuesday 03 December 2002 22:42, =E1=CC=C5=CB=D3=C5=CA =E4=CF=CC=C7=CF=D7= wrote: > Hello! > > I need help to figure out how I can stop or interrupt embedded Jython > interpreter. I use Jython interpreter in my program to execute Jython > scripts and need to stop it in any time. Does anyone know about it? It's as difficult as stopping a Java thread. The jython interpreter ignores the thread interrupted status, which would only slow it down. Since any java code can be called from jython, checking interrupted statu= s would not guarantee anything anyway. You either have to check some status in your jython scripts (eg. thread interrupted status), or you'll have to use a deprecated method to stop the thread running the interpreter. An example of this can be found in Console.py in the swing demo directory of the jython installation. In case you use it, make sure you read the documentation of java.lang.Thread on this. I'd recommend to write a function eg. ExceptionOnCancel that throws an appropriate exception when cancelled (from another thread) and call this function as the first statement of each loop (since koops are portentially infinite) and/or just before or after any repeated call to (java) code that might take some time eg. due to I/O. Use try/finally to release anything that might need releasing. It's a bit of work, but it pays off, at least it did for me. A hanging thread can be difficult to debug and it's much nicer when all threads finish working when canceled. Have fun, Ype |
From: <wa...@ma...> - 2002-12-03 22:43:46
|
Using the thread status handler is not good solution for me, because in that case I can not stop interpreter then some I/O actions performs. Also I can not insert code to the original scipt because that script is external to me. -----Original Message----- From: Ype Kingma <yp...@xs...> To: "Алексей Долгов" <wa...@ma...>,jyt...@li... Date: Tue, 3 Dec 2002 23:27:09 +0100 Subject: Re: [Jython-users] How to stop Jython interpreter > > On Tuesday 03 December 2002 22:42, Алексей Долгов wrote: > > Hello! > > > > I need help to figure out how I can stop or interrupt embedded Jython > > interpreter. I use Jython interpreter in my program to execute Jython > > scripts and need to stop it in any time. Does anyone know about it? > > It's as difficult as stopping a Java thread. The jython interpreter > ignores the thread interrupted status, which would only slow it down. > Since any java code can be called from jython, checking interrupted status > would not guarantee anything anyway. > > You either have to check some status in your jython scripts (eg. thread > interrupted status), or you'll have to use a deprecated method to > stop the thread running the interpreter. An example of this > can be found in Console.py in the swing demo directory of the > jython installation. In case you use it, make sure you read the > documentation of java.lang.Thread on this. > > I'd recommend to write a function eg. ExceptionOnCancel > that throws an appropriate exception when cancelled (from > another thread) and call this function as the first statement of > each loop (since koops are portentially infinite) and/or > just before or after any repeated call to (java) code that might > take some time eg. due to I/O. Use try/finally to release anything > that might need releasing. > It's a bit of work, but it pays off, at least it did for me. A hanging > thread can be difficult to debug and it's much nicer when all > threads finish working when canceled. > > Have fun, > Ype > |
From: Jeff E. <je...@de...> - 2002-12-03 23:00:33
|
Someone posted a technique for interrupting the interpreter using the tracing mechanism a while ago. Check the archives. =E1=CC=C5=CB=D3=C5=CA =E4=CF=CC=C7=CF=D7 wrote: > Using the thread status handler is not good solution for me, because in= that case I can not stop interpreter then some I/O actions performs. Als= o I can not insert code to the original scipt because that script is exte= rnal to me. > -----Original Message----- > From: Ype Kingma <yp...@xs...> > To: "=E1=CC=C5=CB=D3=C5=CA =E4=CF=CC=C7=CF=D7" <wa...@ma...>,jytho= n-...@li... > Date: Tue, 3 Dec 2002 23:27:09 +0100 > Subject: Re: [Jython-users] How to stop Jython interpreter >=20 >=20 >>On Tuesday 03 December 2002 22:42, =E1=CC=C5=CB=D3=C5=CA =E4=CF=CC=C7=CF= =D7 wrote: >> >>>Hello! >>> >>>I need help to figure out how I can stop or interrupt embedded Jython >>>interpreter. I use Jython interpreter in my program to execute Jython >>>scripts and need to stop it in any time. Does anyone know about it? >>> >>It's as difficult as stopping a Java thread. The jython interpreter >>ignores the thread interrupted status, which would only slow it down. >>Since any java code can be called from jython, checking interrupted sta= tus >>would not guarantee anything anyway. >> >>You either have to check some status in your jython scripts (eg. thread >>interrupted status), or you'll have to use a deprecated method to >>stop the thread running the interpreter. An example of this >>can be found in Console.py in the swing demo directory of the >>jython installation. In case you use it, make sure you read the >>documentation of java.lang.Thread on this. >> >>I'd recommend to write a function eg. ExceptionOnCancel >>that throws an appropriate exception when cancelled (from >>another thread) and call this function as the first statement of >>each loop (since koops are portentially infinite) and/or >>just before or after any repeated call to (java) code that might >>take some time eg. due to I/O. Use try/finally to release anything >>that might need releasing. >>It's a bit of work, but it pays off, at least it did for me. A hanging >>thread can be difficult to debug and it's much nicer when all >>threads finish working when canceled. >> >>Have fun, >>Ype >> >> >=20 >=20 > ------------------------------------------------------- > This SF.net email is sponsored by: Microsoft Visual Studio.NET=20 > comprehensive development tool, built to increase your=20 > productivity. Try a free online hosted session at: > http://ads.sourceforge.net/cgi-bin/redirect.pl?micr0003en > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users >=20 |