[Python.NET] Python 2.4 hang when calling .NET dll function

Torgeir Johansen torgeir.johansen at chello.no
Fri Mar 25 18:19:39 CET 2005


Great, Brian. 

I successfully reproduced the state with a very simple application. Here is very dumb python program that uses the CLR:

from CLR.System import String

class cSharpCaller( object ):
    def __init__( self ):
        print "Created a cSharpCaller instance"
        self.__cSharpString = None

    def createCSharpString( self, str ):
        self.__cSharpString = String( str )

    def returnCSharpString( self ):
        return self.__cSharpString.ToString()

And if I test this with this (dumb) threethreaded testprogram:


import threading, thread, time

from cSharpCaller import cSharpCaller 

def start_threads(amount=5):
    for i in range(amount):
         thread = threading.Thread(target=process_thread )
         print "starting thread ", thread.getName()
         thread.start()

def process_thread(  ):
    print "thread  started "
    for i in range( 2 ):
        print "Hi, I'm a thread"
        time.sleep( 1 )
    cs = cSharpCaller( )
    cs.createCSharpString( "created from a thread" )
    print "cs.returnCSharpString() = ", cs.returnCSharpString()
    print "thread %s ended"

start_threads( 3 )

I get this output:

starting thread  thread0
thread  started
Hi, I'm thread %s
starting thread  thread1
thread  started
Hi, I'm thread %s
starting thread  thread2
thread  started
Hi, I'm thread %s
Hi, I'm thread %s
Hi, I'm thread %s
Hi, I'm thread %s
Created a cSharpCaller instance
Created a cSharpCaller instance
cs.returnCSharpString() =

and I have to CTRL+Pause to get out of the hang. Clearly hangs on the first String.ToString() method call. 

Regards, 

Torgeir
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/pythondotnet/attachments/20050325/76c656c3/attachment.html


More information about the PythonDotNet mailing list