Re: Interruptions en C++

Top Page

Reply to this message
Author: Frederic Giroud
Date:  
To: ML Guilde
Subject: Re: Interruptions en C++

Salut,

> Comment utilise-t-on (si c'est possible), les fonctions de mise en place
> des interruptions (alarm(), raise(), kill(), signal() et les sigxxx()) en
>
> C++ ?


ca va pas etre facile, ce sont des fonctions C


> Par exemple, peut-on passer la methode d'un objet particulier a la
> fonction signal() ?


non, ca marchera jamais a moins que ce ne soit une methode "static"
comme ayant la meme signature qu'un handler normal.

> Sinon, est-il possible, dans la fonction C qui servira de handler dans
> signal(), de creer un objet C++ et d'appeler des methodes de celui-ci ?


cela depend de ce que fait ton programme.
s'il ne fait rien (sleep, read, wait...) cela pourra etre fait sans
probleme.
sinon, tu risques de faire des allocations re-entrantent (ou tout
autres fonctions ne supportant pas la re-entrance) et la, c'est
plus complique. (mais ce n'est pas impossible a faire avec les
fonctions "sigmask")

> Merci pour vos lumieres.


en fait tu veux peut etre implementer une sorte de "timer" ?
(pour effectuer une ou plusieurs taches regulierement, en parallele
avec une tache principale, par exemple ?)

Fred.