Sorry, I've just found this: http://ironpython.codeplex.com/workitem/30228so I see that it is a bug.
On Thu, Sep 20, 2012 at 3:48 PM, John Dickinson <jhcd.j...@gmail.com> wrote: > I have at least two threads that end up calling struct.pack and > struct.unpack, and regularly get two exceptions: "SystemError: Object > reference not set to an instance of an object." and "SystemError: The > LinkedList node does not belong to current LinkedList.". The following code > reproduces the problem: > > import threading > import struct > import time > import traceback > import sys > > class TestThread(threading.Thread): > > def __init__(self): > super(TestThread, self).__init__() > self.setDaemon(True) > > def run(self): > while True: > try: > struct.unpack('!H', '\x4f\x00') > struct.pack('H', 20224) > time.sleep(0.005) > except Exception, e: > print(str(e)) > traceback.print_exception(*sys.exc_info()) > > if __name__ == '__main__': > > thread_1 = TestThread() > thread_2 = TestThread() > > thread_1.start() > thread_2.start() > > while True: > print(".") > time.sleep(1) > > (adding more TestThreads makes the error occur more regularly). Running > the same code in CPython (2.7) I get no errors (presumably because of the > GIL). It seems that struct isn't thread safe - is this a bug? I'm running > IronPython "2.7.3 (2.7.0.40) on .NET 4.0.30319.269 (32-bit)" on Windows 7. > >
_______________________________________________ Ironpython-users mailing list Ironpython-users@python.org http://mail.python.org/mailman/listinfo/ironpython-users