[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Maitretarot-devel-fr] Re: [Maitretarot-devel-fr] avance des clients
From: |
philippe brochard |
Subject: |
Re: [Maitretarot-devel-fr] Re: [Maitretarot-devel-fr] avance des clients/ia |
Date: |
28 Oct 2002 10:06:41 +0100 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 |
"address@hidden" <address@hidden> writes:
> Coucou
>
> Comme j'ai pas le temps de repondre efficacement en ce moment, ma reponse va
> etre simple: faut voir dans l'api de glib et des gthreads pour voir comment
> ca marche tout ca. Et refaire peut-etre libmt_channels_set_free?
>
Oui, je sais que tu est occupe :)
Bon, j'ai regarde un peu le code, le probleme semble venir
du while (1) dans channels_loop (ligne 313).
En fait je crois qu'il faudrait mettre une condition de sortie
quand on a finie la connection (-> apres libmt_channels_set_free).
Bon, je vais m'occuper d'une autre partie du client gtk :)
Philippe
> Yves
>
> > Yves Mettier <address@hidden> writes:
> >
> > > On 26 Oct 2002 14:42:14 +0200
> > > philippe brochard <address@hidden> wrote:
> > >
> > > > Yves Mettier <address@hidden> writes:
> > > >
> > > > Il y a toujours un truc qui me fait bizarre au niveau de
> > > > libmt_channels_set_has_enough_data_to_read (fonction
> > > > player_read_data, libmt_player_client.c ligne 76),
> > > > on ne passe jamais dans la boucle while, autrement dit
> > > > libmt_channels_set_has_enough_data_to_read indique tout de
> > > > suite qu'il y a assez de donnee a lire => en gros le while
> > > > ne sert a rien. Enfin c'est peut etre normal.
> > >
> > > On bosse dans des conditions favorables. Y'a toujours assez de donnees
> > > a lire.
> > > Si on bosse dans des conditions moins favorables, style reseau lent,
> > > ou pour le serveur avec des clients qui font chier, ca peut arriver!
> > >
> > > De toute facon, y'a une autre maniere de voir ca.
> > > T'es oblige de faire un if pour verifier qu'il y a assez a lire.
> > > Or si la condition est fausse, un if et un while, c'est pareil!
> > > Donc y'a franchement aucun probleme a mettre un while.
> > >
> > Ok, donc c'est normal :)
> >
> >
> > Bon, sinon j'ai un autre probleme lie aux threads :
> >
> > L'ia et le client ncurses fonctionnent correctement,
> > par contre le client gtk segfault apres l'appel a
> > libmt_channels_set_free (net_consumer ligne 375) apres
> > une deconnection d'un autre client ou a la fin d'un
> > jeu normal quand tout le monde veux arreter.
> >
> > J'ai rajouter des tests sur c, c->channel[i]->buffer pour voir
> > s'ils sont != NULL (toujours dans libmt_channels_set_free),
> > avant ça l'ia et le client ncurses plantaient, apres tout s'est
> > bien passe, donc je les ai laisses.
> >
> > Par contre, le client gtk segfault apres l'appel a la
> > fonction libmt_channels_set_free, ceci parce qu'il ne se
> > termine pas immediatement apres cet appel (si le client gtk se
> > termine immediatement apres cette fonction, il n'y a pas de
> > probleme).
> >
> > J'ai fais l'essai avec l'ia en ne sortant pas du programme
> > (while (1) apres la deconnection) et elle segfault de la
> > meme maniere que le client gtk.
> >
> > La question que je me pose est comment est-ce qu'on arrete la
> > thread de libmaitretarot apres la liberation des channels ?
> > Est-ce que ce n'est pas a libmt_channels_set_free de se charger
> > de ca ?
> >
> > Dans tout les cas, le segfault est du a un acces a 'c'
> > (libmt_channels_set_t *) qui est null apres libmt_channels_set_free
> > alors qu'il n'y a aucun test pour savoir si 'c' est effectivement
> > != NULL et qu'il y a des appels a des fonctions qui cherchent a
> > utiliser 'c' (exemple channel_read_data_from_the_net ligne 184
> > -> une des lignes qui produit le segfault)
> >
> >
> >
> > Philippe
> >
> > --
> > ( )
> > ~oo~ Philippe Brochard <address@hidden>
> > .. Gnu! http://hocwp.free.fr
> > / =\ \=
> > - - - -=-= http://www.fsf.org/home.fr.html =-=-
> >
> >
> > _______________________________________________
> > Maitretarot-devel-fr mailing list
> > address@hidden
> > http://mail.nongnu.org/mailman/listinfo/maitretarot-devel-fr
> >
>
> --
> homepage - http://ymettier.free.fr -
> gtktalog - http://www.freesoftware.fsf.org/gtktalog -
> cardpics - http://www.freesoftware.fsf.org/cardpics/ -
>
> --------------
> EXCEPTIONNEL!
> Tiscali lance les forfaits Internet Illimités,
> à partir de 15,95EUR / mois.
> Pour en profiter,cliquez ici: http://register.tiscali.fr/forfaits/
> Offres soumises à conditions.
>
>
>
>
> _______________________________________________
> Maitretarot-devel-fr mailing list
> address@hidden
> http://mail.nongnu.org/mailman/listinfo/maitretarot-devel-fr
>
--
( )
~oo~ Philippe Brochard <address@hidden>
.. Gnu! http://hocwp.free.fr
/ =\ \=
- - - -=-= http://www.fsf.org/home.fr.html =-=-