Re: Question sur les tasks

Liste des GroupesRevenir à fcl ada 
Sujet : Re: Question sur les tasks
De : stef (at) *nospam* genesix.org (Stéphane Rivière)
Groupes : fr.comp.lang.ada
Date : 18. Oct 2023, 08:33:14
Autres entêtes
Organisation : La Maison
Message-ID : <ugnu7a$3gc53$2@dont-email.me>
References : 1 2
User-Agent : Mozilla Thunderbird
Bonjour Nicolas,

Tu dis que la procédure Msg.Std n'est pas réentrante mais que ce n'est pas un problème. Or Msg.Std est appelée à partir de la tâche SQL_Ping et sûrement à partir d'autres tâches comme la tâche principale. A partir de là, il y a un risque de dysfonctionnement.
La routine de task est dans la déclaration du main... Et appelle une fois par heure Sql.Ping (jamais appelée par ailleurs, qui envoie une requête SQL bidon de lecture pour réarmer le timeout de MySQL) et Msg.Std (appelée partout, écrit sur la console et dans un fichier).

Par exemple, si Msg.Std est appelée par la tâche principale puis, avant qu'elle ne se termine, est également appelée par la tâche SQL_Ping, il y a problème puisque la fonction n'est pas réentrante.
Oui, ça va mettre le souk sur l'écran et dans le fichier.

Le fait d'ajouter un délai au début de la tâche SQL_Ping permet à la fonction Msg.Std de se terminer dans la tâche principale avant d'être appelée dans SQL_Ping. Et tout semble fonctionner parfaitement. Mais ce n'est qu'une illusion. Il est fort probable que dans d'autres conditions de fonctionnement (charge processeur différente, code modifié...), le délai doive être modifié.
J'ai testé différentes valeurs, de 100ms à 5s, ça ne change rien.

Une fonction/procédure appelée à partir de plusieurs tâches DOIT être conçue pour ça (protection avec un mutex, utilisation un objet protégé...).
C'est la prochaine étape. Là, c'était du 'gaffer' pour éviter d'avoir une appli fonctionnelle (au niveau Web, puisque Gnoga ping régulièrement le navigateur - on est en websocket, pas en html -) mais pas au niveau de la connexion SQL (par manque d'activité). Le lendemain matin, ça ne fait pas cossu :)
Je compte bien me perfectionner en Ada avec les tasks :)
--
Stéphane Rivière
Ile d'Oléron - France

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