[IronPython] IronPython and Threads

Dan Eloff dan.eloff at gmail.com
Sun Jun 8 17:23:46 CEST 2008


I'm having a problem debugging some issues that I suspect are thread
related in Silverlight. My application is failing silently, so I have
no way to be sure yet. Is it possible that exceptions in a background
thread are quietly swallowed? I'm pretty sure my callback is being
called, but all that is in it right now is a raise statement.

I've enabled debug.
<param name="initParams" value="debug=true,reportErrors=errorLocation" />

I've been trying to explore Threads a little more with IronPython to
see what might be the problem, but even there I'm not having much
luck. I could swear this used to work in Beta 1. Now it crashes the
interpreter.

IronPython 2.0 Beta (2.0.0.2000) on .NET 2.0.50727.1433
Copyright (c) Microsoft Corporation. All rights reserved.
>>> from System.Threading import Thread, ThreadStart
>>> def foo():
...     raise ValueError
...
>>> t = Thread(ThreadStart(foo))
>>> t.Start()
>>>
Unhandled Exception: System.ArgumentException
   at foo$1##16(Closure )
   at _stub_##25(Closure , CallSite , CodeContext , Object )
   at Microsoft.Scripting.Utils.InvokeHelper`5.Invoke(Object arg0,
Object arg1, Object arg2, Object arg3)
   at Microsoft.Scripting.Utils.ReflectedCaller.InvokeInstance(Object
instance, Object[] args)
   at Microsoft.Scripting.Actions.ActionBinder.UpdateSiteAndExecute[T](CodeContext
context, CallSite`1 site, Object[] args)
   at Microsoft.Scripting.Actions.UpdateDelegates.Update1[T0,TRet](CallSite
site, CodeContext context, T0 arg0)
   at System.Void(), using PythonBinder##20(Closure )
   at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

What's going wrong? How should I be doing this?

Thanks,
-Dan



More information about the Ironpython-users mailing list