Précédent   Forum du club des développeurs et IT Pro > Java > Général Java > Langage > Scala
Scala Forum d'entraide pour le langage Scala
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 27/02/2011, 12h11   #1
karatekator
Invité de passage
 
Inscription : avril 2007
Messages : 14
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 14
Points : 1
Points : 1
Par défaut 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
karatekator est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 09h26   #2
George7
Membre Expert
 
Avatar de George7
 
Homme
Inscription : août 2006
Messages : 1 234
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : août 2006
Messages : 1 234
Points : 1 602
Points : 1 602
Salut,

Je viens de tester ton code et chez moi ça marche très bien, le programme MainClient se termine après avoir envoyé les 3 messages au serveur.
Quelle version de scala utilises-tu ?
__________________
"Ikea / furnishing = OSGi / software : They allow to have very modular things, but trying to put them together generally drives you crazy"
-- Mario Fusco

Pour vos développements Java : apprenez à utiliser la javadoc
George7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 20h12   #3
karatekator
Invité de passage
 
Inscription : avril 2007
Messages : 14
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 14
Points : 1
Points : 1
Citation:
Envoyé par George7 Voir le message
Salut,

Je viens de tester ton code et chez moi ça marche très bien, le programme MainClient se termine après avoir envoyé les 3 messages au serveur.
Quelle version de scala utilises-tu ?
J'utilisais Scala 2.7.7 (proposé par défaut dans Debian Squeeze). J'ai installé hier soir soir Scala 2.8.1 et effectivement maintenant ça marche (je viens de réessayer) ; c'était donc ça !

Merci beaucoup !
karatekator est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h07.


 
 
 
 
Partenaires

Hébergement Web