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

[NetBSD 4.0] sigqueue ?

5 réponses
Avatar
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.

5 réponses

Avatar
talon
JKB wrote:
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

Avatar
Nicolas George
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.

Avatar
JKB
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.


Avatar
Thierry B.
--{ 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 ?


Avatar
JKB
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.