[ C ] Gestion des signaux

Gestion des signaux [ C ] - C - Programmation

Marsh Posté le 01-11-2003 à 10:38:44    

:hello:  
 
j'ai un tit soucis je n arrive pas du tout a gerer les signaux en C voila mon prob :
 
je dois realiser une pool de threads donc dans mon main je cree tout mes threads (qui seront donc bloques dans l attente d un signal...)
 
puis en fait je teste leur etat et si un thread est oisif je dois le reveiller en lui envoyant un signal pour le reveiller
 
pthread_kill (tid, sig) pour send le signal mais je sais pas comment preciser quel signal on envoie ? moi c juste pour reveiller le thread :/
 
de plus les methodes de receptions de signaux sont elles bloquantes ?
 
merci d avance :)
 

Reply

Marsh Posté le 01-11-2003 à 10:38:44   

Reply

Marsh Posté le 01-11-2003 à 10:39:33    

[:cupra]


---------------
L'inventeur de la cédille est un certain monsieur Groçon .
Reply

Marsh Posté le 01-11-2003 à 10:40:52    

arrete je suis vraiment en galere souk :D

Reply

Marsh Posté le 01-11-2003 à 10:45:56    

desole  [:spamafote]  
 
va falloir attendre que les pros du C viennent trainer par la :D
ce serait du Java....j'aurais pu, mais la :/


---------------
L'inventeur de la cédille est un certain monsieur Groçon .
Reply

Marsh Posté le 01-11-2003 à 11:23:36    

bah du fait un handler sur le sign que tu veut qui reveille ton pro

Reply

Marsh Posté le 01-11-2003 à 11:25:46    

justement c'est ca que j ai pas bien compris peux tu m expliker un peu plus ?

Reply

Marsh Posté le 01-11-2003 à 11:39:53    

tu fais koi comme étude? quelle université ou ecole?

Reply

Marsh Posté le 01-11-2003 à 11:42:41    

je suis en maitrise info a jussieu
 
mais bon la on parle signaux :D

Reply

Marsh Posté le 01-11-2003 à 12:03:12    

je viens de penser c pas plus interessant de gerer l affaire avec les mutex ?

Reply

Marsh Posté le 01-11-2003 à 13:21:46    

signal(SIG_xx,wakeup)
 
void wakeup(int n)
reveille toi !!!
 
:p

Reply

Marsh Posté le 01-11-2003 à 13:21:46   

Reply

Marsh Posté le 01-11-2003 à 13:33:31    

mouais :d suis pas super convaincu la :D
 
thread a deja son code c dedans qu il faut que je precise qu il attends un signal... non ? :??: et justement c le fait de lui d attendre un signal precis que j arrive pas a gerer et je sais pas si c bloquant ou si y a moyen des l exec d endormir le thread qui se reveillera uniquement lors de reception du signal :/

Reply

Marsh Posté le 02-11-2003 à 14:29:37    

Je te conseilles de le faire avec des mutex (en tout cas, c'est comme ça que je l'ai fait moi! :D ). Les threads se bloquent sur un mutex , que le serveur débloque si une connexion arrive.


Message édité par torpe23 le 02-11-2003 à 14:29:59
Reply

Marsh Posté le 04-11-2003 à 09:20:41    

ouais j ai vu qu on peut faire ainsi mais je prefere la solution avec les signaux en fait les threads attendent sur un sigwait(SIGUSR1) et le thread principal fait un pthread_kill(tid,SIGUSR1) au thread libre pour traiter la requete visiblement ca devrait fonctionner...

Reply

Marsh Posté le 07-11-2003 à 14:27:20    

les signaux, c'est moche! Surtout SIGUSR1 !!!
Utilise les mutex, c'est fait pour ça!

Reply

Marsh Posté le 08-11-2003 à 15:30:39    

ouais mais j'ai du mal avec les mutex :/ alors je fais comme je peux :/  
 
mais visiblement c'est ok j ai un truc a revoir et c'est good :)

Reply

Sujets relatifs:

Leave a Replay

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