2011-08-17 4 views
8

Tenemos una biblioteca C (.lib windows & .a linux) que solo permite la creación de un singleton y que tampoco se cierra correctamente (la memoria se filtra y los hilos quedan vivos) haber sido una vez instanciado.Aislamiento y multiplicidad de instancias de una biblioteca C en proceso

Reescribiéndolo y buscando los errores a un lado, ¿hay alguna manera simple de aislar este tipo de código incorrecto en proceso, de manera que se pueda eliminar la restricción singleton y se pueda eliminar el orden sucio?

Me interesan principalmente las opciones en proceso, si es que las hay. Un proceso separado obviamente lo resolvería, pero incurriría en una sobrecarga arquitectónica para permitir el control remoto de la biblioteca a menos que haya soluciones de muy bajo impacto para eso (tiene una API amplia, por lo que mantener una gran cantidad de pegamento no es particularmente atractivo).

+2

Sucintamente, no. Si los propietarios de la biblioteca no cooperan, la reescritura es probablemente la más fácil a largo plazo. –

Respuesta

2

Lo sentimos, pero no hay simple forma de hacerlo. Las bibliotecas de espacio limitado que se comportan mal se suelen hacer mediante procesos separados, que ya usted mismo sugirió. Una herramienta de IPC como Buffers de Protocolo podría ayudar a definir e implementar el protocolo de IPC.

Cuestiones relacionadas