On Mon, Sep 22, 2008 at 6:50 PM, Dino Viehland <[EMAIL PROTECTED]> wrote:
> FYI this is the same as bug #18345 - > http://www.codeplex.com/IronPython/WorkItem/View.aspx?WorkItemId=18345 > > ok. I'll go over active tickets so I have a better picture of what to expect We'll fix this for the RC. > great. > > > *From:* [EMAIL PROTECTED] [mailto: > [EMAIL PROTECTED] *On Behalf Of *Ronnie Maor > *Sent:* Monday, September 22, 2008 6:39 AM > *To:* Discussion of IronPython > *Subject:* Re: [IronPython] IP2b5 - error in calling bound method from C#? > > > > 2nd attempt at defining the problem: > "problem assigning bound method to delegate?" > that's my last try. now someone who actually has a clue needs to look at it > :-) > > On Mon, Sep 22, 2008 at 3:29 PM, Ronnie Maor <[EMAIL PROTECTED]> > wrote: > > I think this is a bug and not some silly mistake on my part... > not sure exactly which flows this effects, but here is a small repro: > > import System.Threading > > def cb(state): > print "CB CALLED" > > class Timer(object): > def __init__(self,delay,interval): > def _inner_cb(state): > print "INNER CALLED" > self._callback(None) > f = self._callback # this is the problematic variant > #f = cb > #f = _inner_cb > > self.timer = System.Threading.Timer(f,None,delay,interval) > > def _callback(self,state): # state parameter is required as part of > TimerCallback signature. ignore it. > print "CALLBACK CALLED" > > t = Timer(1000,0) > print "Sleeping..." > System.Threading.Thread.CurrentThread.Join(2000) > print "Woke up" > > ------------------ (end code) > > C:\IronPython\2.0\IronPython-2.0B5>ipy \data\trunk\src\Itst.Backend\tmp.py > Traceback (most recent call last): > File "\data\trunk\src\Itst.Backend\tmp.py", line 20, in > \data\trunk\src\Itst.Backend\tmp.py > File "\data\trunk\src\Itst.Backend\tmp.py", line 15, in __init__ > TypeError: Value cannot be null. > Parameter name: context > > The code works when you change f to one of the other variants (cb or > _inner_cb). > For now I'm going to use _inner_cb variant as a workaround so I can > continue porting my code and map other issues. > > one note if/when comparing with IPy 1.1. The overload resolution was not as > good there, so you need to change the call to Timer to: > Timer_ctor = > System.Threading.Timer.__new__.Overloads[(System.Threading.TimerCallback,object,int,int)] > self.timer = > Timer_ctor(System.Threading.Timer,f,None,delay,interval) > > > > _______________________________________________ > Users mailing list > [email protected] > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > >
_______________________________________________ Users mailing list [email protected] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
