Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
928 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  thread

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

thread

n°180157
Gaspard
Posté le 22-07-2002 à 17:28:57  profilanswer
 


J'ai un problème avec le programme ci-dessous depuis que j'ai rajouté un thread. Le pb, c'est que lorsque je lance le programme et que je fais
CTRL C, le message 1111111111 s'affiche, mais après je ne peux plus rien faire, j'ai plus la main.
Si qq'un pouvais m'aider...

Code :
  1. #include <signal.h>
  2. #include <stdio.h>
  3. void Traiter_Signaux(int numero)
  4. {
  5. switch(numero){
  6.  case SIGINT:  puts("1111111111111" );
  7.     exit(0);
  8.     break;
  9.  case SIGQUIT:  puts("222222222222" );
  10.     exit(0);
  11.     break;
  12. }
  13. }
  14. void * thread_1 (void * numero)
  15. {
  16. while(1);
  17. }
  18. int main(void)
  19. {
  20. pthread_t thread [5];
  21. struct sigaction action;
  22. int ret;
  23. int i;
  24. action.sa_handler=Traiter_Signaux;
  25. sigemptyset(&(action.sa_mask));
  26. action.sa_flags=0;
  27. if(sigaction(SIGQUIT,&action,NULL)!=0){
  28.  perror("sigaction quit" );
  29.  exit(1);
  30. }
  31. if(sigaction(SIGINT,&action,NULL)!=0){
  32.  perror("sigaction int" );
  33.  exit(1);
  34. }
  35. if ((ret = pthread_create (& thread [0], NULL, thread_1, (void *) i)) != 0) {
  36.  fprintf (stderr, "%s", strerror (ret));
  37.  exit (1);
  38. }
  39. while(1);
  40. return(0);
  41. }

mood
Publicité
Posté le 22-07-2002 à 17:28:57  profilanswer
 

n°180196
Jar Jar
Intaigriste
Posté le 22-07-2002 à 19:02:13  profilanswer
 

Gaspard a écrit a écrit :

 
J'ai un problème avec le programme ci-dessous depuis que j'ai rajouté un thread. Le pb, c'est que lorsque je lance le programme et que je fais
CTRL C, le message 1111111111 s'affiche, mais après je ne peux plus rien faire, j'ai plus la main.
Si qq'un pouvais m'aider...


Ouh là là, mon pauvre ami, les threads et les signaux, c'est la merde totale. L'implémentation Linux fait n'importe quoi, et même l'implémentation Solaris n'est pas complètement conforme à la norme.
 
Donc pour l'instant, si on veut faire mumuse avec signaux et threads, on peut :
- ne pas le faire,
- utiliser GNU Pth mais c'est plus lent,
- attendre l'implémentation PthreadsNG, qui devrait enfin apporter la conformité à POSIX.


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°180381
Gaspard
Posté le 23-07-2002 à 08:38:26  profilanswer
 

:(

n°180418
Jar Jar
Intaigriste
Posté le 23-07-2002 à 09:41:43  profilanswer
 

GNU Pth : http://www.gnu.org/software/pth/
 
NG-PThreads : http://oss.software.ibm.com/develo [...] /pthreads/
(par contre il faut patcher le noyau)


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°180420
Gaspard
Posté le 23-07-2002 à 09:43:45  profilanswer
 

:) Merci Jar Jar, je vais essayer de me débrouiller avec ce que tu m'as indiqué


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  thread

 

Sujets relatifs
[JAVA] probleme de thread[Perl] Mémoire partagé en multi-thread
[Java] utilisation de thread[SDL + thread + DLL] Est-il possible de faire un mélange des trois ?
[c++] Lancer une dll en tant que thread ?[MFC] Terminer un thread à la barbare mais proprement quand même ???
Mais ou est passé le thread ?[ THREAD ] pthread_join et pthread_exit : type du paramètre de sortie?
[ JAVA ] encore le gros bleu !! thread thread thread ?!?![JAVA] Thread => occupation processeur
Plus de sujets relatifs à : thread


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR