Hi Dino, <br><br>asked you about this at pycon. posting it here per our discussion to help track it. <br>I understand it&#39;s not high on your priority list (and shouldn&#39;t be, considering the other stuff there)<br><br>
details:<br><br>have a python class (simplified here) that is a wrapper over an event:<br>
class Future(object):<br>&nbsp;&nbsp;&nbsp; def set(self,val) # set from one thread<br>&nbsp;&nbsp;&nbsp; def get(self) # blocking until set. returns the value set.<br><br>I exposed the class to C# code through a template interface:<br>interface IFuture&lt;T&gt;<br>

&nbsp;&nbsp;&nbsp; void set(T val)<br>&nbsp;&nbsp;&nbsp; T get()<br><br>the interaction in our case is that C# calls python, which returns a future, which C# then waits on:<br>interface MyPythonSubsystem:<br>&nbsp;&nbsp;&nbsp; IFuture&lt;int&gt; get_an_int()<br><br>

Ideally I&#39;d say that Future implements IFuture&lt;T&gt; for any T, by having Future inherit from IFuture in python. I hoped this would mean IronPython would accept my Future object when I returned it from the python implementation of get_an_int().<br>

Unfortunately, this isn&#39;t possible, and I could only inherit from IFuture[T] for some specific T.<br><br>Ended up writing a simple function at the boundary between the subsystems which gets T as an argument, and constructs an adapter that inherits from IFuture&lt;T&gt; and proxies to an underlying Future object. It works fine for our case, but less than pretty :-(<br>

<br>anyway, hope this helps document/track it<br>Ronnie<br><br>