Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[OpenBSD] Signaux

2 réponses
Avatar
JKB
Bonjour à tous,

Question du lundi matin sur la gestion des signaux par OpenBSD. J'ai
écrit un bout de code mutiprocesseur qui utilise un tas de signaux
pour se synchroniser. Il _fonctionne_ parfaitement partout sauf sous
OpenBSD.

J'ai donc tracé ce qui se passe dans un gestionnaire de signal et je
me suis apperçu que ce gestionnaire de signal n'est jamais appelé.

J'ai aussi essayé de forcer ce signal par un bête et méchant
kill -PROF pid et _jamais_ le gestionnaire de signal n'est appelé.
Le gestionnaire de signal est implanté grâce à :

action.sa_sigaction = interruption9;
action.sa_flags = SA_ONSTACK | SA_SIGINFO;

Dans le cas OpenBSD, je redéfinis SA_ONSTACK à 0 (parce que
-lpthread et sigaltstack, enfin, je ne continue pas...) et je
n'utilise pas la structure siginfo qui est remplie de choses
fausses.

Le kill() lançant le signal dans mon programme renvoie _toujours_ 0.

Bref : y a-t-il un truc dans OpenBSD qui empêche la réception d'un
signal ?

Merci de vos lumières.

JKB

--
Si votre demande me parvient sur carte perforée, je titiouaillerai très
volontiers une réponse...
=> http://grincheux.de-charybde-en-scylla.fr

2 réponses

Avatar
Miod Vallat
J'ai aussi essayé de forcer ce signal par un bête et méchant
kill -PROF pid et _jamais_ le gestionnaire de signal n'est appelé.
Le gestionnaire de signal est implanté grâce à :



La bibliothèque libpthread du système (threads userland) utilise SIGPROF
pour ses propres besoins.

Oui c'est moche, non ce ne sera pas corrigé, le travail portant
actuellement sur des threads noyau (librthread) qui remplaceront à terme
la libpthread existante.
Avatar
JKB
Le Mon, 16 Aug 2010 09:31:38 +0000 (UTC),
Miod Vallat écrivait :

J'ai aussi essayé de forcer ce signal par un bête et méchant
kill -PROF pid et _jamais_ le gestionnaire de signal n'est appelé.
Le gestionnaire de signal est implanté grâce à :



La bibliothèque libpthread du système (threads userland) utilise SIGPROF
pour ses propres besoins.



Merci pour cette info.

Oui c'est moche, non ce ne sera pas corrigé, le travail portant
actuellement sur des threads noyau (librthread) qui remplaceront à terme
la libpthread existante.



Il n'y a pas à dire, OpenBSD est un système qui me plaît de plus en
plus...

JKB

--
Si votre demande me parvient sur carte perforée, je titiouaillerai très
volontiers une réponse...
=> http://grincheux.de-charybde-en-scylla.fr