[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à.