Bonjour a tous !

je vous dresses un petit topo d'un projet sur lequel je bosse et pour lequel j'ai un petit pépin...

Je travaille sous linux en embarqué sur plateforme ARM. (Tegra 2)
je dois utiliser une LIB qui fait un traitement d'image. cette lib est développée en C++ et utilise OpenCV.
elle a les interfaces (qui me sont utiles) suivantes:
- en entrée je lui injecte des images issues d'un flux vidéo (~30 images / sec) via une methode de la classe principale.
- en entrée toujours, je lui injecte des paramètres divers de fonctionnement. (plus ou moins pendant une phase d'init)
- en sortie, je récupère régulièrement (~ttes les 10 minutes) une liste d'entiers résultants de l'analyse des images via des méthodes/fonctions de la classe principale et sous classes.

cette jolie LIB (statique pour le moment) a été clairement développée avec les pieds et plante lamentablement aléatoirement. (segmentation fault ou autres erreurs plus ou moins catchables) j'ai le source, mais pas le droit d'y modifier le moindre caractère.
bien évidement je ne peux pas me permettre de voir mon appli principale planter a cause de cette LIB (besoin que l'appli principale continue de tourner et de continuer ses autres acquisitions.

donc vu les segmentations Fault qui sont irrécupérables proprement, j'ai décidé de "sortir" l’exécution de la LIB dans un process indépendant afin de pour la relancer en cas de crash.

actuellement j'ai fait ça a l'aide d'un vfork() du thread dans lequel tourne la LIB. ça fonctionne assez bien, l'avantage étant que j'évite de faire de l'IPC grâce a la mémoire partagée entre le process principal et le process de ma LIB...
MAIS...
- j'ai lu un peu partout que le vfork est a bannir...
- j'utilise des mutex conditionnels pour synchroniser mon process LIB avec mon autre process qui gère l'acquisition et l'injection des images (actuellement le point commun entre l'acquisition et le la LIB se résume à un mutex conditionnel et une FIFO de buffer contenant les images.)
et le problème est que j'ai de façon TRES aléatoire des plantage de la LIBC au niveau des mutex conditionnels. (un truc qui a un rapport avec son propriétaire) ce qui provoque un ABORT dans mon appli principale.. ce qui n'est pas acceptable.

je voulais donc refaire cette partie du code afin de la rendre un peu plus "propre" et complètement sortir la LIB dans un autre programme 100% indépendant et utiliser un lien IPC quelconque entre les 2.

mon problème est que je ne sais pas quoi choisir comme moyen...
pipe ? shared memory ? autre ?
j'imaginais avec un lien genre "fichier" dans lequel je pourrais injecter des images ce qui déclencherai (a la fin du transfert) immédiatement l'injection dans la LIB et que le process soit en sleep le reste du temps.
et par ce même lien récupérer le résultats.

Quelqu'un peut il m'aider ? des exemples d'un truc similaire ?

j'oublais... mon appli est en C.. je préfère car j'ai beaucoup de mal de piger le C++

Merci a tous !