Thanks for bringing this up. Unfortunately the bug database is so deep that some important ones have fallen through the cracks.
- Jeff On Thu, Sep 20, 2012 at 7:56 AM, John Dickinson <[email protected]> wrote: > Sorry, I've just found this: http://ironpython.codeplex.com/workitem/30228 > so I see that it is a bug. > > > On Thu, Sep 20, 2012 at 3:48 PM, John Dickinson <[email protected]> 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 > [email protected] > http://mail.python.org/mailman/listinfo/ironpython-users > _______________________________________________ Ironpython-users mailing list [email protected] http://mail.python.org/mailman/listinfo/ironpython-users
