Dear all I'd like to propose https://github.com/kunom/ipy-weakref (the ipy-27-maint branch) to be included into the main IronPython code base. It fixes for me various random SystemError and ValueError exceptions in the _weakref.cs module.
Please note that while my patch changes (and hopefully improves) some aspects in _weakref.cs, I still do think that _weakref.cs has several critical issues: - There is absolutely no locking on the internal data structures, which makes me think that there could be various runtime issues in a multithreaded environment. (However, this does not directly apply to the Finalizer thread since to my knowledge all user threads are suspended during finalization.) - The weakref collection callback is invoked on the .NET finalizer thread. I am not sure whether this is what user code expects. At least there is a high potential of dead-locking the finalizer thread, which is not the nicest thing to do. (Maybe we should issue a warning on direct calls to GC.WaitForPendingFinalizers(), similar to what is printed when calling Thread.Sleep().) Other remarks: - The weakref/weakrefset test case brought up in the mailing list on Apr 13 passes with my changes. - The standard library weakref tests pass with the same number of failures as before - Please note that I am unexperienced with git/GitHub as well as with the IronPython code base, so please show some patience... Thanks! Kuno _______________________________________________ Ironpython-users mailing list Ironpython-users@python.org https://mail.python.org/mailman/listinfo/ironpython-users