[C/Linux]Question sur les pthread

Question sur les pthread [C/Linux] - C - Programmation

Marsh Posté le 05-01-2005 à 15:09:09    

Bonjour,
 
J'ai programmé un jeu de dame en C. Il y a juste un petit truc que j'aimerais mettre en place, mais je ne sais pas trop c
omment m'y prendre. En fait je veux limiter le temps de reflexion de chaque joueur. Voici a quoi j'ai pensé, J'ecris deux fonctions, une qui gere le tour d'un joueur, et une autre avec un sleep qui corresponds au temps  de jeu. Je lance ces deux fonctions dans deux threads different a l'aide de pthread_create().
C'est la que j'ai un probleme je ne vois comment je peux detecter qu'elle thread se termine en premier, j'ai pense faire une boucle while qui teste d'abord le premier thread celui du jeu, puis celui du temps, je le test toutes les secondes en placant un sleep dans while. Mais je trouve pas ça tres exitant alors je me demande si vous n'avez pas une autre idée.
 
Merci pour votre aide.

Reply

Marsh Posté le 05-01-2005 à 15:09:09   

Reply

Marsh Posté le 05-01-2005 à 15:36:03    


Oublie c'est nase comme idée.
 
Fais une boucle qui lis des données, qui ne bloque pas s'il n'y a rien et incrémente un compteur de tentatives.  
Arrivé à une certaine valeur tu sors en indiquant un temps trop long.
 
voir 'Disposer d'un read non bloquant' sur ce forum.

Reply

Marsh Posté le 05-01-2005 à 21:55:35    

un petit SIGALRM peut etre sympa aussi ;)

Reply

Marsh Posté le 06-01-2005 à 15:36:32    

Ouais pour le read non bloquant, ton code est tres interessant, mais ça ne correspond pas a c que j'ai envie de faire, et disons que le jeu comme je l'ai definit ne serais pas tres agréable, et de plus , ça n'est pas tres pratique a mettre ne place au sein de mon programme. Dans le meme esprit il y a aussi la fonction select qui a l'air bien : http://www.linux-kheops.com/doc/ma [...] ect.2.html
 
je vais regarder le signal SIGALRM voir ce que je peux faire avec ça.
 
Merci pour vos reponses.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed