07-10-2014, 02:04 AM
Bonjour,
Lorsqu'un automate A exécute un automate B, l'automate A continue de se dérouler en parallèle de l'exécution de l'automate B.
J'observe que lorsqu'on essaie d'exécuter un automate qui est déjà lancé, il ne se passe rien : Dans le cas précédent, l'automate A continue de se dérouler, et l'automate B, qui était déjà en cours d'exécution, continue l'exécution commencée.
Je suis tombé sur un cas de figure où ce fonctionnement pose problème, à savoir que je déclenche un automate pour générer un nombre pseudo-aléatoire que j'utilise dans plusieurs automates dans le cadre d'une simulation de présence (je prendrai le temps à l'occasion d'expliquer comment j'ai fait si ça intéresse certains). Dans ce cas, le fonctionnement ci-avant décrit a pour conséquence de ne pas générer un nouveau nombre pseudo-aléatoire, avec des conséquences fâcheuses sur ma simulation de présence.
L'idéal serait de pouvoir déclencher plusieurs instances du même automate en parallèle, sauf que dans mon cas ça ne fonctionnerait pas puisque la seule façon d'échanger des paramètres d'entrée/sortie entre automates est aujourd'hui d'utiliser des variables publiques, ce qui est incompatible avec toute réentrance. Donc (ça faisait longtemps...) il faudrait qu'un automate puisse prendre des variables en entrée et fournir un résultat en sortie...
En attendant il faudrait qu'on puisse paramétrer le déclenchement d'un automate depuis un autre de telle façon que l'appelant se mette en attente de la fin de l'exécution du second avant de poursuivre son traitement ET il faudrait qu'on puisse spécifier qu'un automate est réentrant ou non ET que l'appelant se mette en attente si l'automate appelé n'est pas réentrant et qu'il est déjà en cours d'exécution...
Bon, ce serait peut-être plus simple d'implémenter le passage de paramètres en entrée/sortie... ;-)
Thierry
Lorsqu'un automate A exécute un automate B, l'automate A continue de se dérouler en parallèle de l'exécution de l'automate B.
J'observe que lorsqu'on essaie d'exécuter un automate qui est déjà lancé, il ne se passe rien : Dans le cas précédent, l'automate A continue de se dérouler, et l'automate B, qui était déjà en cours d'exécution, continue l'exécution commencée.
Je suis tombé sur un cas de figure où ce fonctionnement pose problème, à savoir que je déclenche un automate pour générer un nombre pseudo-aléatoire que j'utilise dans plusieurs automates dans le cadre d'une simulation de présence (je prendrai le temps à l'occasion d'expliquer comment j'ai fait si ça intéresse certains). Dans ce cas, le fonctionnement ci-avant décrit a pour conséquence de ne pas générer un nouveau nombre pseudo-aléatoire, avec des conséquences fâcheuses sur ma simulation de présence.
L'idéal serait de pouvoir déclencher plusieurs instances du même automate en parallèle, sauf que dans mon cas ça ne fonctionnerait pas puisque la seule façon d'échanger des paramètres d'entrée/sortie entre automates est aujourd'hui d'utiliser des variables publiques, ce qui est incompatible avec toute réentrance. Donc (ça faisait longtemps...) il faudrait qu'un automate puisse prendre des variables en entrée et fournir un résultat en sortie...
En attendant il faudrait qu'on puisse paramétrer le déclenchement d'un automate depuis un autre de telle façon que l'appelant se mette en attente de la fin de l'exécution du second avant de poursuivre son traitement ET il faudrait qu'on puisse spécifier qu'un automate est réentrant ou non ET que l'appelant se mette en attente si l'automate appelé n'est pas réentrant et qu'il est déjà en cours d'exécution...
Bon, ce serait peut-être plus simple d'implémenter le passage de paramètres en entrée/sortie... ;-)
Thierry