问题描述
我正在使用 Python greenlets 编写我的 c 程序脚本。
脚本设置如下:
- 使用 PyModule_New() 创建新的空模块
- 使用 PyEval_GetBuiltins() 和 PyModule__Addobject() 将内置函数添加到模块中
- 使用 PyDict_Merge() 将预制的自定义脚本函数模块导入到该新模块中
- 使用 PyRun_String() 将将函数转换为协程的装饰器注入模块
- 实际脚本源从文件中加载并使用 PyRun_String() 执行
- 所有协程/greenlets 都使用 PyObject_CallMethod(g,"switch","") 在所有通过装饰器变成 greenlets 的函数上启动;
Coroutines/greenlets 现在在无限循环中运行,根据 c 程序的需要产生和继续。
我的问题是;我可以保存模块的完整状态并在稍后加载它,以便所有协程继续在它们停止的地方运行吗?我知道通过 pickle 进行序列化,但我不确定我需要序列化多少和确切的内容才能完全继续运行。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)