我们有一个C库(.lib windows& .a linux),它只允许创建一个单例,并且一旦实例化,也不会正常关闭(内存泄漏和线程处于活动状态)。
重写它并将bug排除在外,是否有一种简单的方法可以在进程中隔离这种行为不端的代码,从而可以删除单例限制,并且可以对不洁的整理进行沙盒化处理?
我主要对任何进程内选项感兴趣,如果有的话。一个单独的过程显然会解决它,但是会产生架构开销,允许远程控制库,除非有非常低影响的解决方案(它具有广泛的API,因此保持大量的粘合剂并不是特别有吸引力)。 / p>
答案 0 :(得分:2)
很抱歉,但没有简单的方法来执行此操作。沙箱表现糟糕的库通常使用您自己建议的单独进程来完成。像Protocol Buffers这样的IPC工具可能有助于定义和实现IPC协议。