Bonjour,
J'utilise des IOChannel pour une connexion par socket entre deux programmes. La connexion marche bien, j'envoie et je reçois.
J'ai un besoin maintenant de timeout, à savoir:
A envoie un message à B,
et attends la réponse de B ou jusqu'à ce que le timeout soit passé.
Comme il n'y a pas de timeout dans le read des iochannel (enfin je crois pas), au départ je comptais, dans A:
1/ Me connecter au signal_io
2/ Ecrire à B dans le channel
3/ Me mettre en attente active tant que le booléen RECEIVED soit faux
ou que mon timer.elapsed() soit < à TIMEOUT (variable)
=> dans cette attente active, dormir un poil de centième de seconde, dépiler les signaux Glib avec MainContext::Iteration
et dans la callback du signal_io, mettre RECEIVED à vrai dès que je reçois le message.
Le problème, c'est que je ne reçois rien dans ce cas, il semble que mon dépilage d'iteration ne fonctionne pas...
y a-t-il une solution plus simple, ou un correctif à mon idée ?
Merci![]()
Partager