[IronPython] thread.interrupt_main() not implemented
dinov at exchange.microsoft.com
Fri Oct 19 19:34:12 CEST 2007
And we implement that using Thread.Abort (which is the only way we really have to interrupt a thread at an arbitrary point in time) :) When the user catches it they'll see it as a KeyboardInterruptException, and we'll do the right thing for Thread.ResetAbort().
If you want to get the exact behavior we cause with Ctrl-C it's actually:
from Microsoft.Scripting.Shell import KeyboardInterruptException
in v1.x it's:
from IronPython.Runtime.Exceptions import PythonKeyboardInterruptException
and then the user can catch it as a they'd catch a normal keyboard interrupt. I think the only reason we don't have this implemented by default is that in some situations (e.g. outside the console) we won't actually know what the "main" thread is.
From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Curt Hagenlocher
Sent: Friday, October 19, 2007 10:17 AM
To: Discussion of IronPython
Subject: Re: [IronPython] thread.interrupt_main() not implemented
thread.interrupt_main has somewhat different semantics than Thread.Abort; it basically triggers a keyboard interrupt on the main thread -- this is, of course, an exception that can be caught and handled by user code on that thread.
On 10/19/07, Dino Viehland <dinov at exchange.microsoft.com<mailto:dinov at exchange.microsoft.com>> wrote:
I think you could work around this by remembering the main .NET thread and calling Abort on it:
from System import Threading
main = Thread.CurrentThread
# and then later on...
But I'd suggest that interrupting a thread at an arbitrary point is a little dangerous (as it may have some state which isn't entirely consistent that it's trying to update).
From: users-bounces at lists.ironpython.com <mailto:users-bounces at lists.ironpython.com> [mailto:users-bounces at lists.ironpython.com<mailto:users-bounces at lists.ironpython.com>] On Behalf Of Clems no
Sent: Friday, October 19, 2007 8:37 AM
To: users at lists.ironpython.com<mailto:users at lists.ironpython.com>
Subject: [IronPython] thread.interrupt_main() not implemented
When i want to use thread.interrupt_main() in iron python script, i've got this error:
NotImplementedError: interrupt_main not implemented
Is there an equivalent in ironpython?
Users mailing list
Users at lists.ironpython.com <mailto:Users at lists.ironpython.com>
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Ironpython-users