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