Terminaison d'un programme qui utilise des actors.
Bonjour tout le monde.
Ayant eu envie d'apprendre l'utilisation des Actors en Scala, je suis tombé sur le problème suivant :
Tout d'abords je définit un classe d'actors dont le seul but pour l'instant est d'envoyer un message à un RemoteActors.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| import scala.actors.Actor
import scala.actors.Actor._
import scala.actors.remote.RemoteActor
import scala.actors.remote.RemoteActor._
import scala.actors.remote.Node
class Client() extends Actor {
def act () {
val serveur = select(Node("127.0.0.1",9090),'Serveur)
serveur ! "ok"
exit()
}
} |
Ma fonction principale est la suivante:
Code:
1 2 3 4 5 6 7 8 9 10 11
| import scala.actors.Actor
import scala.actors.Actor._
object MainClient extends Application {
val a1 = new Client()
val a2 = new Client()
val a3 = new Client()
a1.start
a2.start
a3.start
} |
Le serveur distant reçoit bien les trois messages "ok", mais mon programme MainClient ne termine pas (alors que les trois Actors ont appelé exit()). Comment peut on dire « quand tous les actors ont terminé, termine la fonction » ?
Merci d'avance