Bug sous Windows, backticks et threads

Le
Olivier Croquette
Salut

J'utilise la dernière version d'Active State sous Windows, et elle a un
vieux bug très gênant :
http://bugs.activestate.com/show_bug.cgi?id3820

Question aux personnes sous Windows : avez-vous aussi ce bug ? Si non,
quel distribution de Perl utilisez-vous ?

Merci pour vos réponses !

Olivier
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Paul Gaborit
Le #18160101
À (at) Tue, 16 Dec 2008 21:01:06 +0100,
Olivier Croquette
J'utilise la dernière version d'Active State sous Windows, et elle a
un vieux bug très gênant :
http://bugs.activestate.com/show_bug.cgi?id3820

Question aux personnes sous Windows : avez-vous aussi ce bug ? Si non,
quel distribution de Perl utilisez-vous ?

Merci pour vos réponses !



Sous Windows, perl utilise les threads pour pallier l'absence de
véritable 'fork' (qui est utilisé implicitement avec les ``). Il y a
donc interaction entre les threads créés par le script et ceux créés
par l'émulation du 'fork'.

Le bug est-il corrigeable ou non ? Je n'en sais rien. En tous cas, il
est soumis au bonne endroit puisque cette émulation de 'fork' via des
threads a été écrite par ActiveState.

Mais la "bonne" question est : pourquoi avez-vous besoin des `` (ou
plus généralement de 'fork') ?

Une fois votre *vrai* problème exposé, on pourra peut-être vous aider
à vous passer de 'fork'. Peut-être en créant de vrais processus
Windows...

Autre "bonne" question : pourquoi avez-vous besoin des threads ?

Là encore, on peut peut-être trouver un moyen de s'en passer...

--
Paul Gaborit - Perl en français -
Olivier Croquette
Le #18182021
Paul Gaborit wrote, On 17/12/08 1:24:
Une fois votre *vrai* problème exposé, on pourra peut-être vous aider
à vous passer de 'fork'. Peut-être en créant de vrais processus
Windows...



Je ne fais pas de fork().

Autre "bonne" question : pourquoi avez-vous besoin des threads ?



Pas le choix, je suis appelé dans un contexte threadé.


En l'absence de correctif pour ce bug, je ne vois en fait que 2
alternatives: utiliser system(), ou bien créer vrais process Windows
pour exécuter les commandes externes :(
Paul Gaborit
Le #18184341
À (at) Fri, 19 Dec 2008 22:19:07 +0100,
Olivier Croquette
Paul Gaborit wrote, On 17/12/08 1:24:
Une fois votre *vrai* problème exposé, on pourra peut-être vous aider
à vous passer de 'fork'. Peut-être en créant de vrais processus
Windows...



Je ne fais pas de fork().



Les backtiks (``) sont un appel implicite à fork().

Autre "bonne" question : pourquoi avez-vous besoin des threads ?



Pas le choix, je suis appelé dans un contexte threadé.

En l'absence de correctif pour ce bug, je ne vois en fait que 2
alternatives: utiliser system(), ou bien créer vrais process Windows
pour exécuter les commandes externes :(



system() fait aussi appel implicitement à fork().

Mais il est possible que le bug ne soit pas sur une interaction entre
threads et émulation de fork() par thread mais plutôt sur la
communication implicite qu'impose les backticks. Dans ce cas, fork()
ou system() fonctionneront.

Dernière remarque : évitez de passer par le shell surtout que sur
Windows, il n'a pas la puissance d'un shell unix.

--
Paul Gaborit - Perl en français -
Publicité
Poster une réponse
Anonyme