Isolieren und Multiplizieren der Instantiierung einer C-Bibliothek während des Prozesses

8

Wir haben eine C-Bibliothek (.lib windows & amp; .a linux), die nur die Erzeugung eines Singletons erlaubt und auch nicht ordnungsgemäß heruntergefahren wird (Speicherlecks und Threads, die am Leben geblieben sind), nachdem sie einmal instanziiert wurden.

Umschreiben Sie es und suchen Sie die Fehler beiseite, gibt es eine einfache Möglichkeit, diese Art von fehlerhaften Code im Prozess zu isolieren, so dass die Singleton-Einschränkung entfernt werden kann, und die unordentliche Aufräumaktion kann Sandboxed sein?

Ich bin hauptsächlich an irgendwelchen In-Process-Optionen interessiert, wenn es überhaupt welche gibt. Ein separater Prozess würde es offensichtlich lösen, würde aber einen architektonischen Aufwand verursachen, um die Fernsteuerung der Bibliothek zu ermöglichen, es sei denn, es gibt Lösungen mit sehr geringen Auswirkungen (es hat eine breite API, so dass viel Klebstoff nicht besonders attraktiv ist) / p>     

idij 17.08.2011, 13:19
quelle

1 Antwort

2

Entschuldigung, aber es gibt keine einfache Möglichkeit, dies zu tun. Das Sandboxing von Bibliotheken, die sich schlecht benehmen, wird normalerweise mit separaten Prozessen durchgeführt, die Sie bereits selbst vorgeschlagen haben. Ein IPC-Tool wie Protokollpuffer könnte bei der Definition und Implementierung des IPC-Protokolls helfen.

    
Fred Foo 17.08.2011, 14:36
quelle

Tags und Links