Guard: Le piégeage des signaux ne fonctionne pas sous Windows

Créé le 6 mai 2011  ·  3Commentaires  ·  Source: guard/guard

Comme discuté ici et ici

bug

Commentaire le plus utile

LOL, voici une liste complète des signaux pris en charge et des meilleures pratiques documentées pour contourner le reste. S'amuser! ^_^;

Tous les 3 commentaires

vous voulez dire qu'une spécification d'interopérabilité entre les systèmes d'exploitation dérivés d'unix n'est pas respectée par un système d'exploitation avec une histoire presque entièrement déconnectée d'unix ? Ouais, non, ça sonne bien. ;)

Les signaux Posix ne sont généralement pas disponibles sous Windows pour autant que je sache. Il existe un sous-système officiellement pris en charge avec un sous-ensemble varié d'API POSIX, mais apparemment uniquement si vous achetez la version entreprise ou ultime de vista/win7. Cela inclut la possibilité d'écrire un logiciel qui prend en charge les signaux POSIX (mais pas leur prise en charge automatique). Bon sang, l'entreprise Windows Unix... chose... a même un vieux port de Debian apparemment non maintenu qui la cible. Comment est-ce pour terrifiant?

Quoi qu'il en soit, revenons à ruby. Le port initial a été fait en utilisant cygwin. Cygwin est une couche de compatibilité POSIX et UNIX générale absolument massive qui sacrifie les performances, la taille de l'exécution et les fonctionnalités en tant que coût de compatibilité. Il fournit cependant une richesse absolue de confort unix dans un territoire autrement hostile. Cela ne me surprendrait pas le moins du monde si le piégeage du signal fonctionnait parfaitement dans Windows tant que vous utilisiez un rubis à base de cygwin.

Le programme d'installation en un clic de Windows d'origine utilisait Visual Studio 6, un ancien dinosaure. Le programme d'installation en un clic de Windows utilise mingw et msys. Ni l'un ni l'autre ne prendrait en charge les signaux posix, mais je n'en sais pas plus que cela. J'ai jeté un coup d'œil, j'ai vu un "gcc.bat" et un "make.bat", et je suis devenu très triste.

Soit dit en passant, ISO C99 définit un petit nombre de signaux non-posix que les implémenteurs sont tenus de prendre en charge, mais les deux seuls qui peuvent être interceptés via un gestionnaire de sortie sont SIGINT et SIGTERM (au moins selon les spécifications, et nous savons tous comment beaucoup de microsoft aime se conformer aux normes).

LOL, voici une liste complète des signaux pris en charge et des meilleures pratiques documentées pour contourner le reste. S'amuser! ^_^;

Merci pour vos recherches, je pense que nous devrons trouver une solution de contournement et ignorer les signaux sur Windows :)

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

tomrossi7 picture tomrossi7  ·  6Commentaires

Odaeus picture Odaeus  ·  21Commentaires

bgentry picture bgentry  ·  10Commentaires

Antti picture Antti  ·  4Commentaires

lastobelus picture lastobelus  ·  5Commentaires