• [^] # Re: temps explicite ?

    Posté par . En réponse à la dépêche Sortie d’Erlang/OTP 24. Évalué à 4.

    La gestion du temps est possible grâce à une expression du langage, pas à travers l'appel à des fonctions. Cette expression est receive.

    Par exemple:

    receive 
     message1 -> 
     do_something(message1);
     message2 ->
     do_something_else(message2)
    after
     5000 ->
     cant_wait_anymore()
    end.

    Ici, on attend 2 types de message (message1 ou message2) pendant 5sec (5000ms). Si aucun des 2 n'est reçu, on appelle la fonction cant_wait_anymore(). C'est une structure de base de langage sur laquelle des librairies plus complexes sont construites.

    Une mise en œuvre de sleep(timeout) pourrait être:

    receive
     non_existing_message ->
     ok
    after
     Timeout ->
     ok
    end.

    On attend un message qui n'arrivera jamais pendant Timeout ms.

    "Liberté, Sécurité et Responsabilité sont les trois pointes d'un impossible triangle" Isabelle Autissier