Re: Question sur les tasks

Liste des GroupesRevenir à fcl ada 
Sujet : Re: Question sur les tasks
De : p.p11 (at) *nospam* orange.fr (Blady)
Groupes : fr.comp.lang.ada
Date : 18. Oct 2023, 21:22:32
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <ugpb9p$3qmd2$1@dont-email.me>
References : 1
User-Agent : Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.15.1
Le 17/10/2023 à 17:57, Stéphane Rivière a écrit :
Bonjour à toutes et tous,
 Je ne connais rien aux tâches Ada.
 Vite fait, afin de baisser le timeout de DB MySQL (par défaut à 8 heures, que je baisserai bien à 1h30 pour réduire les ressources des connexions laissées ouvertes pour rien), je 'codouille' ceci dans le main de l'app. utilisateur... Msg.Std ou Sql.Ping ne sont pas réentrants mais comme c'est de l'affichage de log ou de la pure lecture de DB, je ne m'en fait pas pour l'instant...
 L'appel à C balaye la table des DB ouvertes et envoie un "SELECT 1" bidon à toutes les DB qui le nécessitent (donc pas les SQLite par exemple).
 Mais au démarrage de l'applic, pour que la line B affiche le message de log :
 TestGui.SQL_Ping > Armed for 3600s cycles
 Il faut que je mette une ligne A avec un appel à delay...
 J'aimerai bien comprendre le truc (et baisser mon ignorance).
  ---------------------------------------
    task SQL_Ping;
     task body SQL_Ping is
       Delay_Value : Duration := 3600.0;  -- Wait 1 hour between pings
    begin
A      delay 0.1; --  Mandatory to displaying the message below
B      Msg.Std ("TestGui.SQL_Ping > Armed for " &
                Trim_Left (Field_By_Index (From_Latin_1 (Duration'Image (Delay_Value)), 1, ".")) & "s cycles");
       while True loop
          delay Delay_Value;
          Msg.Dbg ("TestGui.SQL_Ping > Sent");
C        Sql.Ping;
       end loop;
    end SQL_Ping;
 ---------------------------------------
 Merci d'avance (et généralement merci à la communauté, vous me faites bien progresser :).
 
Bonjour Stéphane,
La déclaration de SQL_Ping à ce niveau fait qu'elle démarre dès son élaboration.
Et donc sans doute avant l'initialisation de quelques codes utiles à Msg.Std que permet l'ajout du delay.
Ce qui rend le fonctionnement très dépendant de beaucoup de choses :-(
Du coup, dans ces cas là, j'ajoute toujours un "accept Start" (à la place de ton "delay 0.1;") qui va attendre un appel à "Start" que tu vas pouvoir mettre dans ton code une fois que tout a été initialisé.
Autres astuces:
. pour une boucle infinie en Ada -> tout simplement "loop ... end loop;"
. pour prendre directement l'image du type Duration avec UXStrings -> déclarer la fonction :
function Image is new UXStrings.Conversions.Fixed_Point_Image (Duration);
HTH, Pascal.

Date Sujet#  Auteur
17 Oct 23 * Question sur les tasks20Stéphane Rivière
17 Oct 23 +* Re: Question sur les tasks7Pascal Obry
18 Oct 23 i`* Re: Question sur les tasks6Stéphane Rivière
7 Dec 23 i `* Re: Question sur les tasks5Pascal Obry
8 Dec 23 i  `* Re: Question sur les tasks4pehache
8 Dec 23 i   `* Re: Question sur les tasks3Pascal Obry
8 Dec 23 i    `* Re: Question sur les tasks2pehache
8 Dec 23 i     `- Re: Question sur les tasks1Pascal Obry
17 Oct 23 +* Re: Question sur les tasks10DrPi
18 Oct 23 i`* Re: Question sur les tasks9Stéphane Rivière
18 Oct 23 i `* Re: Question sur les tasks8DrPi
19 Oct 23 i  `* Re: Question sur les tasks7Stéphane Rivière
19 Oct 23 i   `* Re: Question sur les tasks6DrPi
19 Oct 23 i    +* Re: Question sur les tasks4J-P. Rosen
20 Oct 23 i    i`* Re: Question sur les tasks3Stéphane Rivière
20 Oct 23 i    i +- Re: Question sur les tasks1J-P. Rosen
20 Oct 23 i    i `- Re: Question sur les tasks1J-P. Rosen
20 Oct 23 i    `- Re: Question sur les tasks1Stéphane Rivière
18 Oct 23 `* Re: Question sur les tasks2Blady
19 Oct 23  `- Re: Question sur les tasks1Stéphane Rivière

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal