IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ada Discussion :

Problème avec select delay then abort


Sujet :

Ada

  1. #1
    Membre habitué Avatar de semaj_james
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 193
    Points : 139
    Points
    139
    Par défaut Problème avec select delay then abort
    Bonjour,

    J'ai trouve un exemple et je ne le comprends pas bien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    declare
    Timeout : Duration:= 10.0;
    -- durée attendue 10s
    begin
       select
          delay Timeout;
       then abort
           Compute;
           -- calcul dont on veut
           -- limiter le temps
           -- d‘exécution
       end select;
    end;
    Que fait ce code ?
    si Compute prend plus de 10s son execution est arrete ?
    comment dois je faire si je veux qu'au lieu de quitter le programme si Compute depasse 10s il m'execute autre chose ?
    (en fait je voudrais temporiser une simulation et si j'accelere trop la vitesse de simulation (la simulation n'arrive plus a suivre) j'aimerais la ralentir.)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    declare 
      Mode : Mode_Type := Normal;
    -- le mode est
    -- normal ou critique
    begin
       select
           Alarm.Panic;
           -- la tâche Alarm diffuse
           -- les événements recus
           Mode := Critical;
       then abort
           Compute;
           -- calcul que l‘on veut
           -- interrompre en cas
           -- d‘événement critique
       end select;
    end;
    Je comprends pas ce que fait Alarm.Panic. C'est un programme qui tourne en boucle ? s'il s'arrete alors on interromp Compute ?

  2. #2
    Membre habitué
    Inscrit en
    Décembre 2004
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 119
    Points : 156
    Points
    156
    Par défaut
    Citation Envoyé par semaj_james
    Bonjour,

    J'ai trouve un exemple et je ne le comprends pas bien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    declare
    Timeout : Duration:= 10.0;
    -- durée attendue 10s
    begin
       select
          delay Timeout;
       then abort
           Compute;
           -- calcul dont on veut
           -- limiter le temps
           -- d‘exécution
       end select;
    end;
    Que fait ce code ?
    si Compute prend plus de 10s son execution est arrete ?
    comment dois je faire si je veux qu'au lieu de quitter le programme si Compute depasse 10s il m'execute autre chose ?
    (en fait je voudrais temporiser une simulation et si j'accelere trop la vitesse de simulation (la simulation n'arrive plus a suivre) j'aimerais la ralentir.)
    Oui, si Compute atteint la limite des 10 secondes, c'est le bloc entre le delay et le then abort qui est execute s'il y en a un.

    J'avoue que j'ai du mal a voir ce que tu appelles temporiser.
    Donc je ne sais pas t'en dire plus.

    Maintenant, si tu te bases sur une gestion de timeout comme celle-ci je ferai gaffe a l'etat des donnees manipulees vu qu'il est probable que tu interrompes Compute en plein milieu d'un calcul.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    declare 
      Mode : Mode_Type := Normal;
    -- le mode est
    -- normal ou critique
    begin
       select
           Alarm.Panic;
           -- la tâche Alarm diffuse
           -- les événements recus
           Mode := Critical;
       then abort
           Compute;
           -- calcul que l‘on veut
           -- interrompre en cas
           -- d‘événement critique
       end select;
    end;
    Je comprends pas ce que fait Alarm.Panic. C'est un programme qui tourne en boucle ? s'il s'arrete alors on interromp Compute ?
    Je ne me souviens pas d'un package Alarm dans le standard Ada. :-(
    Ca existe peut-etre, mais ca ne me rappelle rien.

    *EDIT ... Heu rien, j'ai pas les yeux en face des trous. ^^
    A+

    Juan

  3. #3
    Membre habitué Avatar de semaj_james
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 193
    Points : 139
    Points
    139
    Par défaut
    ok je te remercie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/06/2006, 09h15
  2. [MySQL] [BDD] Problème avec SELECT "dynamique"
    Par Vecine dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/03/2006, 11h11
  3. Problème avec select sous MYSQL
    Par Thomad dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/01/2006, 11h26
  4. problème avec select sur onchange
    Par Kerod dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 01/12/2005, 14h05
  5. Problème avec select top
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 10/12/2004, 14h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo