【发布时间】:2010-05-29 13:13:58
【问题描述】:
纯粹为了它,我决定创建一个Scheme binding to libpython,以便您可以将 Python 嵌入到 Scheme 程序中。我已经能够调用 Python 的 C API,但我还没有真正考虑过内存管理。
mzscheme 的 FFI 的工作方式是我可以调用一个函数,如果该函数返回一个指向 PyObject 的指针,那么我可以让它自动增加引用计数。然后,我可以注册一个终结器,它会在 Scheme 对象被垃圾回收时减少引用计数。我查看了documentation for reference counting,乍一看并没有发现任何问题(尽管在某些情况下它可能不是最佳的)。有什么我遗漏的问题吗?
另外,我无法确定cyclic garbage collector documentation 的正面或反面。这里我需要记住什么?特别是,我如何让 Python 知道我引用了某些东西,这样它就不会在我仍在使用它时收集它?
【问题讨论】:
标签: python garbage-collection scheme reference-counting python-c-api