Select() et gtk_main() l'un bloque l'autre !
Bonsoir,
Voila j'ai une appli en "C" + "GTK", dans ma fonction main, je construit toutes les fenetres je fait un show_all de ma premiere fenetre (fenetre1), et quand je clique sur le boutton qu'on va appeller "toto" (fenetre1->toto) il doit fermer la fentre courante (fenetre1), afficher une autre (fenetre2) et lancer un Select .
Code:
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 35 36 37 38 39 40
|
int do_select(int ss);
void toto_clicked(...)
{
........
gtk_widget_hide(fenetre1->window);
gtk_widget_show_all(fenetre2->window);
do_select(ss);
}
int do_select(int ss)
{
fd_set fd_read;
struct timeval tv;
tv.tv_sec = 2;
tv.tv_usec = 0;
while (1)
{
FD_ZERO(&fd_read);
FD_SET(ss, &fd_read);
if (select(ss + 1, &fd_read, NULL, NULL, &tv) != -1)
{
if (FD_ISSET(ss, &fd_read))
{
my_putstr("TOUCHE\n");
//print_msg_in_cur(read_server_rep(ss), 1);
}
}
else
{
my_putstr("ERR SELECT\n");
exit(-1);
}
my_putstr("nothing\n");
}
return (0);
} |
Le probleme et que la fenetre1 disparait (normal !), l'appli se lance dans le do_select sans jamais afficher la fenetre2 malgres l'apelle gtk_widget_show_all(fenetre2->window) !!! et des que je met la ligne do_select en commentaire tout marche !!!!
est ce que quelqu'un a une petite idee d'ou vien le probleme ?? :roll: