Pages : 1
#1 Le 22/04/2006, à 15:00
- aznur
pthread vs gthread
bon et bien voila suite au message que g poster et qui reste sans reponse
je me pose une autre question
quel qu'un a til deja utiliser les pthread pour rafraichir une fenetre GTK
et 2 eme question si vous avai pa reusi avez vous deja reusi a utiliser les gthread
jarive a creer un gthread
GThread *GlibThread1 ;
GError *err1;
err1 = NULL ;
if (!g_thread_supported ())
g_thread_init (NULL);
GlibThread1 = g_thread_create (mafonction3,this,TRUE,&err1);
bon sa compile mais le prob c que j'ai un segment fault un depacement de memoire o nivo materiel
si g bien compris
je n'est tjr pa compris prk il y avai se depacement de capacite
je travaille sous anjuta avec un code c++ merci de vos reponse
pour rafraichir ma fenetre j'utiliserer la fonction queuedraw();
Dernière modification par aznur (Le 22/04/2006, à 15:02)
Hors ligne
#2 Le 24/04/2006, à 05:58
- viddak
Re : pthread vs gthread
Salut!
J'ai jamais utiliser les gthreads mais a voir le bout de code, j'ai l'impression que si tu alloue ton err1, ca devrai mieux marcher. Alors qu'ici tu le met a NULL.
Dis nous si en l'allouant ca corrige ton problème!
A+
Dernière modification par viddak (Le 24/04/2006, à 05:59)
Hors ligne
#3 Le 24/04/2006, à 13:21
- aznur
Re : pthread vs gthread
ba eu non enfaite l'allocation mémoire pour err1 ne change rien
et enfaite certaine personne se serve meme pas du err et il mete NULL direct enfaite
donc g exactement le meme codage que eux eux sa marcherai ...
mais moi non jy croit moyen ou alor ya quelque chose a ajouter a anjuta g deja ajouter en bibliotheque GLib en tout cas merci pour l'iade tu a utiliser d'autre thread ?
a tu fait du rafraichisement de fenetre ? sous linux ?
Dernière modification par aznur (Le 24/04/2006, à 13:22)
Hors ligne
#4 Le 24/04/2006, à 16:59
- viddak
Re : pthread vs gthread
et mafonction3 est-elle bien initialisée? car dans le bout de code que tu montres, on ne le vois pas.
J'ai utiliser les g_threads y'a quelques temps, je n'ai pas eu de probleme.
Dernière modification par viddak (Le 24/04/2006, à 17:01)
Hors ligne
#5 Le 25/04/2006, à 02:25
- gene69
Re : pthread vs gthread
je suis supris par cette ligne même sans connaitre g_thread_supported()
GThread *GlibThread1 ;
GError *err1;
err1 = NULL ;
if (!g_thread_supported ()) /*pourquoi le ! ? */
g_thread_init (NULL);
GlibThread1 = g_thread_create (mafonction3,this,TRUE,&err1);
les gthread ça sort des librairies Gnome?
J'ai pas le type de g_thread_create dans mes pages de man ni g_thread_init.
Il me semble qu'à l'époque ou je faisait des pthread on mettait les creates AVANT les init ... je ne vérifie pas, ne me tapez pas.
PS: Utilise des accolades tout le temps, même lorsque c'est inutile. Ca permet de faire du pliage de code + mieux voir son code....
Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion
Hors ligne
#6 Le 25/04/2006, à 13:24
- aznur
Re : pthread vs gthread
viddak par initialiser tu entend quoi pour l'instan c juste une fonction "bidon" elle fai rien elle et juste declaré
void* fonctionbidon(void * arg){
return arg
}
les g thread sa sort de la Glib
enfaite g_thread_supported (sa veu pa dire ke le systeme suporte les thread ..
sa veu dire quil sont deja initialisez sa servirez par exemple a faire linit dans un constructeur
le ! sa veu dire linverse if (! quelque chose )
inverse de la condition
pour les pthread ya pas d'init enfin je crois pas
et quand on initialise le systeme pour le support des Gthread donc on peu pas creer de thread avant de d'initialiser le systeme
Dernière modification par aznur (Le 25/04/2006, à 13:34)
Hors ligne
#7 Le 25/04/2006, à 14:13
- viddak
Re : pthread vs gthread
Je me suis mal exprimé en parlant d'initialisation, ce que je voulais dire c'est est-ce que tu peu nous montrer la signature de ta fonction. Est-elle conforme aux GThreadFunc?
GThread* g_thread_create (GThreadFunc func,
gpointer data,
gboolean joinable,
GError **error);
Le premier argument est un GThreadFunc :
gpointer (*GThreadFunc) (gpointer data);
Peux-tu aussi nous dire a quelle ligne a lieu ton segmentation fault?
Dernière modification par viddak (Le 25/04/2006, à 14:15)
Hors ligne
#8 Le 25/04/2006, à 19:19
- aznur
Re : pthread vs gthread
ba enfaite par signature dsl je voi pa se que tu entend
et g rien compris au protype de la de GthreadFunc donc je me suis inspirée dexemple du net ...
sinon le segment fault et provoquer a la creation
a l'appel de g_thread_create
c sa que tu demande ?
gpointer (*GThreadFunc) (gpointer data);
void *mafonction(void* arg); sinon je voit pas
Hors ligne
Pages : 1