DarkLord a écrit a écrit :
Lorsque tu démarres la registry depuis un prog Java c'est considéré comme une thread de la JVM en cours.
|
Pas completement d'accord : ce n'est forcement vrai QUE pour le premier hop, ensuite si ton application est native tu n'as plus aucun controle. Voici un cas que j'ai du traiter :
Si tu lances un prog externe a partir d'une applic java tu as un nouveau processus (et pas thread)... Mais les processus crees par ce processus fils ne sont pas forcement lie au processus fils (ils peuvent etre independants, ne plus faire partie du meme process tree). Donc si le processus createur meurt les petits fils peuvent toujours tourner...
Et ca c'est de la "belle caca" : processus tournant et bloquant des ressources... et ce ne sont meme aps des fantomes.
J'avais ce probleme avec realencoder en mode ligne de commande : seul moyen de killer l'application proprement etait de faire un ctrl-c sur la fenetre (a la main, impossible de lancer un signal ou d'ecrire sur les streams pour terminer proprement l'applic) , sinon (fermeture a partir de l'application ouplantage) des processus tournaient encore (genre le processus d'encodage... donc fichier non ferme, donc impossible de lancer un post processing, etc...) et on devait les killer a la main en les cherchant.
Cette "feature" a la con a empecher un postprocessing automatise des flux audio : un type devait stoper l'encodage a la main... Chez Real ils refusaient de faire quoi que ce soit et proposaient d'utiliser la version DCOM de l'encodeur ou de coder un outil gadget pour trouver les processus et les killer (il leur suffisait de lier les processus dans leur produit mais non ca leur faisait chier... vive les produits commerciaux) (alors qu'on avait besoin de portabilite entre win-solaris-irix (3 plateformes sur lesquelles tournait leur shell-encoder)
Finalement on a change de produit car Real se foutait de la gueule du monde.
Tout ca pour dire que c'est ce qui se passe "peut-etre" dans le cas de greg : processus qui accapare le port apres plantage de l'application.