<HTML xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><HEAD><!-- Template generated by Exclaimer Mail Disclaimers on 11:10:04 Wednesday, 26 March 2014 -->
<STYLE type=text/css>P.468bc717-b9fc-4e6a-aa8f-aa1d9c5b5d31 {
        MARGIN: 0cm 0cm 0pt
}
LI.468bc717-b9fc-4e6a-aa8f-aa1d9c5b5d31 {
        MARGIN: 0cm 0cm 0pt
}
DIV.468bc717-b9fc-4e6a-aa8f-aa1d9c5b5d31 {
        MARGIN: 0cm 0cm 0pt
}
TABLE.468bc717-b9fc-4e6a-aa8f-aa1d9c5b5d31Table {
        MARGIN: 0cm 0cm 0pt
}
DIV.Section1 {
        page: Section1
}
</STYLE>
<meta http-equiv=Content-Type content="text/html; charset=utf-8" /><meta name=Generator content="Microsoft Word 15 (filtered medium)" /><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";
        mso-fareast-language:EN-GB;}
span.kwd
        {mso-style-name:kwd;}
span.pln
        {mso-style-name:pln;}
span.lit
        {mso-style-name:lit;}
span.pun
        {mso-style-name:pun;}
span.str
        {mso-style-name:str;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></HEAD>
<BODY lang=EN-GB link="#0563C1" vlink="#954F72">
<P class=468bc717-b9fc-4e6a-aa8f-aa1d9c5b5d31><div class=WordSection1><p class=MsoNormal>Let’s say I run the following simple script (which also contains an “atexit” func, as I might want to perform some cleanup when the script terminates):-<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style=line-height:13.35pt;background:#EEEEEE;vertical-align:baseline><span style="font-size:10.5pt;font-family:Consolas;color:darkblue;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB">import</span><span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB"> atexit<o:p></o:p></span></p><p class=MsoNormal style=line-height:13.35pt;background:#EEEEEE;vertical-align:baseline><span style="font-size:10.5pt;font-family:Consolas;color:darkblue;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB">import</span><span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB"> time<o:p></o:p></span></p><p class=MsoNormal style=line-height:13.35pt;background:#EEEEEE;vertical-align:baseline><span style="font-size:10.5pt;font-family:Consolas;color:darkblue;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB">import</span><span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB"> sys<o:p></o:p></span></p><p class=MsoNormal style=line-height:13.35pt;background:#EEEEEE;vertical-align:baseline><span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB"><o:p> </o:p></span></p><p class=MsoNormal style=line-height:13.35pt;background:#EEEEEE;vertical-align:baseline><span style="font-size:10.5pt;font-family:Consolas;color:maroon;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB">@atexit</span><span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB">.register<o:p></o:p></span></p><p class=MsoNormal style=line-height:13.35pt;background:#EEEEEE;vertical-align:baseline><span style="font-size:10.5pt;font-family:Consolas;color:darkblue;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB">def</span><span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB"> cleanup():<o:p></o:p></span></p><p class=MsoNormal style=line-height:13.35pt;background:#EEEEEE;vertical-align:baseline><span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB">    </span><span style="font-size:10.5pt;font-family:Consolas;color:darkblue;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB">print</span><span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB"> </span><span style="font-size:10.5pt;font-family:Consolas;color:maroon;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB">'doing cleanup/termination code'</span><span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB"><o:p></o:p></span></p><p class=MsoNormal style=line-height:13.35pt;background:#EEEEEE;vertical-align:baseline><span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB">    sys.exit()<o:p></o:p></span></p><p class=MsoNormal style=line-height:13.35pt;background:#EEEEEE;vertical-align:baseline><span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB"><o:p> </o:p></span></p><p class=MsoNormal style=line-height:13.35pt;background:#EEEEEE;vertical-align:baseline><span style="font-size:10.5pt;font-family:Consolas;color:darkblue;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB">for</span><span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB"> i </span><span style="font-size:10.5pt;font-family:Consolas;color:darkblue;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB">in</span><span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB"> range(</span><span style="font-size:10.5pt;font-family:Consolas;color:maroon;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB">100</span><span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB">):<o:p></o:p></span></p><p class=MsoNormal style=line-height:13.35pt;background:#EEEEEE;vertical-align:baseline><span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB">    </span><span style="font-size:10.5pt;font-family:Consolas;color:darkblue;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB">print</span><span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB"> </span><span style="font-size:10.5pt;font-family:Consolas;color:maroon;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB">'doing something'</span><span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB"><o:p></o:p></span></p><p class=MsoNormal style=line-height:13.35pt;background:#EEEEEE;vertical-align:baseline><span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB">    time.sleep(</span><span style="font-size:10.5pt;font-family:Consolas;color:maroon;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB">1</span><span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0cm;mso-fareast-language:EN-GB">)</span><span style=font-size:10.5pt;font-family:Consolas;color:black;mso-fareast-language:EN-GB><o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>If I call “_engine.Runtime.Shutdown()” in my C# code, it results in the atexit func getting called and raising a SysExitException in the calling C# code (due to the line “sys.exit()”), but the “for” loop still continues to run to completion.<o:p></o:p></p><p class=MsoNormal>What am I missing? Is it possible to forcibly terminate a running script with IronPython?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p></div></P>
<P class=468bc717-b9fc-4e6a-aa8f-aa1d9c5b5d31> </P>
<P class=468bc717-b9fc-4e6a-aa8f-aa1d9c5b5d31><span style='font-family:Calibri; font-size:11pt; color: #1F497D; font-weight: bold; '></span><span style='font-family:Calibri; font-size:11pt; color: #1F497D; font-weight: bold; '>Andrew </span><span style='font-family:Calibri; font-size:11pt; color: #1F497D; font-weight: bold; '>Stephens</span></P>
<P class=468bc717-b9fc-4e6a-aa8f-aa1d9c5b5d31><span style='font-family:Calibri; font-size:11pt; color: #1F497D; '>Senior Software Engineer</span></P><FONT color=#1f497d size=2>
<P class=468bc717-b9fc-4e6a-aa8f-aa1d9c5b5d31><span style='font-family:Calibri; font-size:11pt; color: #1F497D; font-weight: bold; '>Nu Instruments Ltd</span></P>
<P class=468bc717-b9fc-4e6a-aa8f-aa1d9c5b5d31> </P>
<P class=468bc717-b9fc-4e6a-aa8f-aa1d9c5b5d31><table class=468bc717-b9fc-4e6a-aa8f-aa1d9c5b5d31Table><tr><td><span style='font-family:Calibri; font-size:x-small; color: #1F497D; font-weight: bold; '>Email: </span></td><td><span style='font-family:Calibri; font-size:x-small; color: #1F497D; text-decoration: none; '>Andrew.Stephens@nu-ins.com</span></td></tr><tr><td><span style='font-family:Calibri; font-size:x-small; color: #1F497D; font-weight: bold; '>Tel: </span></td><td><span style='font-family:Calibri; font-size:x-small; color: #1F497D; '>+44 (0) 1978 661304</span></td></tr><tr><td><span style='font-family:Calibri; font-size:x-small; color: #1F497D; font-weight: bold; '>Fax: </span></td><td><span style='font-family:Calibri; font-size:x-small; color: #1F497D; '>+44 (0) 1978 664301</span></td></tr><tr><td><span style='font-family:Calibri; font-size:x-small; color: #1F497D; font-weight: bold; '>Web:</span></td><td><span style='font-family:Calibri; font-size:x-small; color: #1F497D; '><a href='http://www.nu-ins.com' title='' target=''>www.nu-ins.com</a></span></td></tr></table></P>
<P class=468bc717-b9fc-4e6a-aa8f-aa1d9c5b5d31></FONT> </P>
<P class=468bc717-b9fc-4e6a-aa8f-aa1d9c5b5d31><img border=0 width=162 height=26 src='cid:1ebda7.png@eacedfb9.4c908aab' /></P>
<P class=468bc717-b9fc-4e6a-aa8f-aa1d9c5b5d31><FONT size=2><FONT face=Calibri><FONT color=#1f497d><B></B></FONT></FONT></FONT> </P>
<P class=468bc717-b9fc-4e6a-aa8f-aa1d9c5b5d31><FONT size=2><FONT color=#1f497d><FONT face=Calibri><B>Nu Instruments Ltd</B><BR />Unit 74 Clywedog Road South<BR />Wrexham 
Industrial Estate<BR />Wrexham LL13 9XS<BR />United Kingdom</FONT></FONT></FONT></P>
<P><B><FONT color=#1f497d size=1 face=Calibri>Disclaimer</FONT></B></P>
<P><FONT color=#1f497d><FONT face=Calibri><FONT size=1>This message is 
confidential and may contain privileged information and is protected by 
copyright. If you are not the intended recipient you should not copy or disclose 
this message to anyone but should kindly notify the sender and delete the 
message. Opinions, conclusions and other information in this message which do 
not relate to the official business of Nu Instruments Ltd shall be understood as 
neither given nor endorsed by it. No contracts shall be concluded by means of 
this email. Neither the Company nor the sender accepts any responsibility or 
liability for any loss or damage arising from the presence of any computer virus 
or similar harmful code contained in this email or attachment/s.  It is 
your responsibility to scan this email and any attachments. The Company reserves 
the right to access and disclose all messages sent over its email 
system.<B></B></FONT></FONT></FONT></P>
<P><FONT color=#1f497d size=1 face=Calibri>Nu Instruments Ltd is registered in 
England, No.: 3046042. Registered Office: Seacourt Tower, West Way, Oxford OX2 
0FB. VAT No.: GB 616 3733 45</FONT></P>
<P class=468bc717-b9fc-4e6a-aa8f-aa1d9c5b5d31></P></FONT></BODY></HTML>