[NetBSD 4.0] sigqueue ?

Le
JKB
Bonjour à tous,

Vous vous souvenez peut-être de mon problème de signaux à temps réel
sous NetBSD. J'ai progressé en transformant tous mes signaux RT en
signaux standard et en jouant avec des pipes. Cela fonctionne
parfaitement sous Solaris et Linux mais ça ne compile toujours pas
sous NetBSD :

rpl-instructions_d5.conv.o: In function `instruction_detach':
/import/home/bertrand/gopher/rpl2/build-sparc-netbsd/src/instructions_d5.conv.c:1937: undefined reference to `sigqueue'
/import/home/bertrand/gopher/rpl2/build-sparc-netbsd/src/instructions_d5.conv.c:1951: undefined reference to `sigqueue'
collect2: ld a retourné 1 code d'état d'exécution
gmake[2]: *** [rpl] Erreur 1
gmake[2]: quittant le répertoire «
/amd/weierstrass/export/home/bertrand/gopher/rpl2/build-sparc-netbsd/src »
gmake[1]: *** [install] Erreur 2
gmake[1]: quittant le répertoire «
/amd/weierstrass/export/home/bertrand/gopher/rpl2/build-sparc-netbsd/src »
gmake: *** [install-recursive] Erreur 1
riemann:[~/gopher/rpl2/build-sparc-netbsd] >

Visiblement NetBSD ne connaît pas sigqueue !? Sur ce coup, google
n'est pas mon ami D'où deux questions :
1/ est-ce mon installation de NetBSD qui ne connaît pas sigqueue()
ou est-ce une limitation de NetBSD ?
2/ comment émuler le fonctionnement de sigqueue() [en userland of
course] simplement ?

Cordialement,

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
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
talon
Le #3321991
JKB
Bonjour à tous,

Vous vous souvenez peut-être de mon problème de signaux à temps réel
sous NetBSD. J'ai progressé en transformant tous mes signaux RT en
signaux standard et en jouant avec des pipes. Cela fonctionne
parfaitement sous Solaris et Linux mais ça ne compile toujours pas
sous NetBSD :

Visiblement NetBSD ne connaît pas sigqueue !? Sur ce coup, google
n'est pas mon ami... D'où deux questions :
1/ est-ce mon installation de NetBSD qui ne connaît pas sigqueue()
ou est-ce une limitation de NetBSD ?
2/ comment émuler le fonctionnement de sigqueue() [en userland of
course] simplement ?


Au vu des pages man, NetBSD ne supporte pas sigqueue. Par contre
FreeBSD-7 (*) le supporte, ainsi que sigtimedwait et sigwaitinfo. Cest trois
fonctions sont marquées REALTIME dans la documentation des signaux sur
FreeBSD.

(*) mais pas FreeBSD-6.

--

Michel TALON

Nicolas George
Le #3321981
JKB wrote in message
1/ est-ce mon installation de NetBSD qui ne connaît pas sigqueue()
ou est-ce une limitation de NetBSD ?


sigqueue fait partie de l'extension optionnelle « Realtime Signals
Extension », donc si NetBSD ne supporte pas les signaux temps réel, c'est un
peu normal qu'il ne supporte pas sigqueue.

2/ comment émuler le fonctionnement de sigqueue() [en userland of
course] simplement ?


La solution fiable serait de revoir le design de ton programme pour éliminer
complètement toutes les subtilités sur les signaux.

JKB
Le #3321971
Le 14-04-2008, à propos de
Re: [NetBSD 4.0] sigqueue ?,
Nicolas George écrivait dans fr.comp.os.unix :
JKB wrote in message
1/ est-ce mon installation de NetBSD qui ne connaît pas sigqueue()
ou est-ce une limitation de NetBSD ?


sigqueue fait partie de l'extension optionnelle « Realtime Signals
Extension », donc si NetBSD ne supporte pas les signaux temps réel, c'est un
peu normal qu'il ne supporte pas sigqueue.

2/ comment émuler le fonctionnement de sigqueue() [en userland of
course] simplement ?


La solution fiable serait de revoir le design de ton programme pour éliminer
complètement toutes les subtilités sur les signaux.


Merci. Commence à me faire braire, le NetBSD !

JKB


--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.


Thierry B.
Le #3334441
--{ JKB a plopé ceci: }--

Vous vous souvenez peut-être de mon problème de signaux à temps réel
sous NetBSD. J'ai progressé en transformant tous mes signaux RT en
signaux standard et en jouant avec des pipes.
[...]

Visiblement NetBSD ne connaît pas sigqueue !?


Si ça peut te consoler, à priori un Open42 non plus.

Mais pourquoi ne pas utiliser les signaux classiques, ou sigpending(2)
et ensuite de gérer la logique de file d'attente en interne dans le
récepteur puisque tu devrais avoir toutes les données dans le fifo.
Genre une boucle autour de poll/select ?


--
Par exemple une licence pour l'utilisation d'un logiciel, c'est la même
chose que pour un bar. Seul le degré compte :)
Hum... Mais alors un détenteur de licence IV peut servir du GPL ?


JKB
Le #3334431
Le 14-04-2008, à propos de
Re: [NetBSD 4.0] sigqueue ?,
Thierry B. écrivait dans fr.comp.os.unix :
--{ JKB a plopé ceci: }--

Vous vous souvenez peut-être de mon problème de signaux à temps réel
sous NetBSD. J'ai progressé en transformant tous mes signaux RT en
signaux standard et en jouant avec des pipes.
[...]

Visiblement NetBSD ne connaît pas sigqueue !?


Si ça peut te consoler, à priori un Open42 non plus.


Ça ne me console pas...

Mais pourquoi ne pas utiliser les signaux classiques, ou sigpending(2)


J'utilise déjà sigpending. Mais j'avais besoin de sigqueue pour
synchroniser deux tâches.

et ensuite de gérer la logique de file d'attente en interne dans le
récepteur puisque tu devrais avoir toutes les données dans le fifo.
Genre une boucle autour de poll/select ?


Parce que c'est bien plus compliqué que cela. Je vais donc devoir
bidouiller a quick and dirty patch autour d'un kill().

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.


Publicité
Poster une réponse
Anonyme