[IronPython] thread.interrupt_main() not implemented

Curt Hagenlocher curt at hagenlocher.org
Fri Oct 19 19:38:57 CEST 2007


Ah!

On 10/19/07, Dino Viehland <dinov at exchange.microsoft.com> wrote:
>
>  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) J  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:
>
>
>
> import clr
>
> clr.AddReference('Microsoft.Scripting')
>
> from Microsoft.Scripting.Shell import KeyboardInterruptException
>
> main.Abort(KeyboardInterruptException(""))
>
>
>
> in v1.x it's:
>
>
>
> import clr
>
> clr.AddReference('IronPython')
>
> from IronPython.Runtime.Exceptions import PythonKeyboardInterruptException
>
> main.Abort(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> 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…
>
>
>
> main.Abort()
>
>
>
> 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] *On Behalf Of *Clems no
> *Sent:* Friday, October 19, 2007 8:37 AM
> *To:* users at lists.ironpython.com
> *Subject:* [IronPython] thread.interrupt_main() not implemented
>
>
>
> Hello,
>
> 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?
>
> Thanks,
>
> cbr.
>
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20071019/70aa1b94/attachment.html>


More information about the Ironpython-users mailing list