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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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