maitretarot-devel-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Maitretarot-devel-fr] Re: [Maitretarot-devel-fr] avance des clients/ia


From: address@hidden
Subject: [Maitretarot-devel-fr] Re: [Maitretarot-devel-fr] avance des clients/ia
Date: Mon, 28 Oct 2002 08:39:05 +0200

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?

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.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]