slt a tous,
j'ai un souci avec cette fonction, je dois créer plusieurs thread en gtk mais ca plante a ce niveau, de l'aide plz.
slt a tous,
j'ai un souci avec cette fonction, je dois créer plusieurs thread en gtk mais ca plante a ce niveau, de l'aide plz.
Poste un peu de code ou détaille ( sans en faire 1000 lignes illisibles) clairement ton probléme car avec l'information que tu nous donnes il faut être fort pour te donner la solution à ton probléme
![]()
Mets toi à notre place quand tu postes![]()
ok no souci les gars, voila le code, commenté attention !!! rien que pour vous !lol.
je pense que vous maitrisez mieux que moi ces fonctions, mon but etant de faire tourner les 2 thread en // en partageant de la ressource entre les deux, celle ci servira a stocker les infos pour affichage dès qu'elle sera "remplie" par le serveur. merci de votre aide les amis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 int main() { //declarations ... //les fonctions dont la 1ere m'emet l'erreur : g_thread_init (NULL); gdk_threads_init (); gdk_threads_enter (); gtk_init(&argc, &argv); //création d'objet widget pour la fenetre gtk window=gtk_window_new(GTK_WINDOW_TOPLEVEL); ... //creation de thread pthread_create( &winth,NULL, (void *)&fenetre,NULL); //creation d'un thread serveur (communication socket) pthread_create( &servth,NULL, (void *)&serveur,NULL); gtk_widget_show_all(window); gtk_main(); gdk_threads_leave (); } //le code du thread (me semble-t-il) void fenetre() { while(1) { gdk_threads_enter (); wait(5); printf("fenetre\n"); gdk_threads_leave (); } }
Bonjour,
Tu as passé ton programme au débugueur histoire de connaitre la cause et l'endroit du plantage ?
J'aurais commencé par initialiser les gtk puis les threads (pas l'inverse). Pourquoi utiliser les threads de gdk ? ceux de la glib ne te plaisent pas ?Envoyé par splinternabs
j'utilise ces threads car c'es les seul qu'on ma montré. si tu propose autre chose qui marche bien je prend !!!
je prend toute solution me permettant d'avancer mes threads.
par contre j'ai deduit que l'erreur est au niveau de g_thread_init() car en la mettant en commentaire je n'ai pas cette erreur de segmentation.
merci.
Quand il est placé avant le gtk_init ?Envoyé par splinternabs
Voilà un squelette de code qui fonctionne :
Je te renvoi à la doc sur les threads de la glib pour la doc de ces fonctions : http://developer.gnome.org/doc/API/2...b-Threads.html
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 gtk_init (&argc, &argv); g_thread_init (NULL); ... g_thread_create (gnr_valid, NULL, FALSE, NULL); ... gpointer gnr_valid (gpointer user_data) { ... g_thread_exit (0); }![]()
Partager