[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [gulliver] Python et la gestion des signaux
|
From |
Patrick Lamaizière <patgul+gul at davenulle dot org> |
|
Subject |
Re: [gulliver] Python et la gestion des signaux |
|
Date |
Tue, 22 Apr 2008 19:34:42 +0200 |
Le Mon, 21 Apr 2008 23:16:52 +0200,
plaunay1 <pierre dot launay at ac-rennes dot fr> a écrit :
> >> /* Quand on veut tester qu'on passe bien dans un programme d'IT,
> >> on place un drapeau dans celui-ci et c'est dans le programme
> >> principal qu'on l'affiche
> >
> > Tu auras *toujours* une fenêtre de temps où le drapeau ne sera pas
> > pris en compte. À moins de bloquer le signal.
> >
> J'ai du mal à comprendre.
>
> Si je place, void signal_handler_IO (int status)
> {
> wait_flag = FALSE;
> }
> dans une interruption d'un microcontrôleur, le danger est que
> wait_flag=FALSE avant dans ce cas on perd une info, on le mettrais 2
> fois à FAUX avant de mettre wait_flag à VRAI.
>
> Mais les IT étant prioritaires on verra forcément wait_flag=FALSE
> dans le programme principal.
>
> C'est sur le PC est plus complexe qu'un microcontroleur.
Non ça ne change rien (àma) :
if (flag) alors
patati patata chapi chapo
flag := false;
fin si
si entre le test et l'affection le drapeau flag est changé par le
gestionnaire, une interruption ou le saint esprit, c'est ignoré : le
drapeau est remis à false.
> Pour info voici le source des fonctions inWaiting() et read()
> dans le fichier serialposix.py
Désolé, ENOBRAIN là.