2 votes

Les spécifications scala ne se terminent pas lorsque l'on teste les acteurs.

J'essaie de tester certains acteurs en utilisant les spécifications de Scala. Je lance le test dans IDEA ou Maven (comme junit) et il ne se termine pas. En regardant le code, mon test s'est terminé, mais certains threads internes (scheduler) sont en attente. Comment puis-je faire en sorte que le test se termine ?

1voto

oxbow_lakes Points 70013

Actuellement, cela n'est possible qu'en provoquant l'arrêt forcé de l'ordonnanceur de l'actor framework :

scala.actors.Scheduler.impl.shutdown

Cependant, l'implémentation sous-jacente du planificateur a été modifiée dans les mises à jour de patchs récemment, donc cela peut être différent, ou ne pas fonctionner avec la version sur laquelle vous êtes. Dans 2.7.7 le planificateur par défaut semble être une instance de scala.actors.FJTaskScheduler2 pour lesquels cette approche devrait fonctionner, mais si vous vous retrouvez avec une SingleThreadedScheduler il ne le fera pas, car le shutdown est une méthode sans effet

Cela ne fonctionnera que si vos acteurs n'attendent pas un message d'alerte. react à cette époque

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X