Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/04/2006, à 16: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, à 16:02)

Hors ligne

#2 Le 24/04/2006, à 06: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, à 06:59)

Hors ligne

#3 Le 24/04/2006, à 14: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, à 14:22)

Hors ligne

#4 Le 24/04/2006, à 17: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, à 18:01)

Hors ligne

#5 Le 25/04/2006, à 03: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, à 14: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, à 14:34)

Hors ligne

#7 Le 25/04/2006, à 15: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, à 15:15)

Hors ligne

#8 Le 25/04/2006, à 20: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