begin process at 2012 05 29 22:46:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Autre

 > 

Problème utilisation pthread avec option static


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème utilisation pthread avec option static

vendredi 29 octobre 2010 à 10:39:20 | Problème utilisation pthread avec option static

ajollive

Bonjour,

j'ai un code qui gère un système multithreadé avec des mutex. J'ai une interface HTTP qui me permet d'ajouter ou de killer des threads. La plupart du temps, mes threads sont en attente d'une condition (pthread_cond_wait) et donc le mutex est locké. Lorsque je kill mon thread, il faut qu'il débloque le mutex (pthread_unlock). Je fais donc appel à la macro pthread_clean_push(routine, args) / pthread_clean_pop(1) afin de lui demander de relacher le mutex avant de se détruire (la fonction pthread_mutex se trouve dans "routine"). Le thread est détruit à partir d'un autre thread via pthread_cancel.

Le tout fonctionne très bien avec :
gcc - lpthread

le problème est que je dois compiler avec l'option "-static" et dans ce cas précis, lorsque le pthread_cancel est appelé, il n'appelle pas "routine" et mon application tombe donc en dead lock puisque le mutex n'est pas relaché.

J'ai essayé d'utiliser pthread_kill à la place de pthread_cancel en vain.

J'ai testé:
gcc -static -Wl,-whole-archive -lpthread -Wl,-no-whole-archive
gcc -static -pthread
=> donnent le même résultat => dead lock
gcc -static -lpthread
=> ne fonctionne pas

Je suis sous une machine Linux et je développe sous Eclipse en C++.


Merci d'avance pour votre aide.


Cette discussion est classée dans : problème, gcc, static, pthread, mutex


Répondre à ce message

Sujets en rapport avec ce message

Probleme threads [ par turnerom ] Bonjour, je n'arrive pas à compiler ce petit programme servant a illustrer mon problème :#include #include using namespace std;static pthread_mutex_t Problème avec GCC [ par Cho7Kipu ] Je réalise actuellement un programme destiné a etre utilisé sous unix, et que je devrais donc compiler avec gcc.Un probleme se pose, vu que gcc ne rec [UNIX]1 producteur N consomateurs [ par epmi212 ] bonjour je doit rendre le probleme 1 prducteur N consomateurs la semaine prochaine mais j'ai un probleme de code je vois le probleme est ce que vous problème d'edition des liens [ par maaalek ] slt, J'essai de compiler un projet C++ et j'ai un problème d'edition des liens. tout les .o sont générés mais j'obtiens l'erreur suivante lors de l'e variable privee et statique [ par Kangourou_Nomade ] Bonjour,Je voudrais utiliser une variable statique dans une classe ( un logger). cette variable est un mutex qui me permettraitde ne pas ecrire dans m Le nouveau GCC et le problème avec iostream.h [ par zaim khelifi ] Bonjour à tous; Dernièrement, avec le nouveau compilateur GCC 4.3, lorsqu’on compile :[code=cpp] #include int main() { cout<<"Hello Monde\n"; } [/cod Problème avec GCC [ par messier79 ] BonjourJ'ai installé Mingw32 et j'ai configuré mes variables comme il fautA l'exécution de gcc -v, j'obtiens le message sans pb.Mais à la compil du fi Problème avec un static [ par BugcORE ] Bonsoir tout le monde !Jai juste un ptit problème !J'arrive pas a effacer le contenu d'un staticmeme en fesant InvalidateRect() sa marche pas ! J'util ARRTER UN PTHREAD [ par sebastienmz ] Bonjours tlmje voudrais savoire comment on arrete un thread sous linux avec la librairie pthread.hen fait mon problème je lance un thread et a un mome problème à la compilation [ par totoscill ] Bonjour,J'utilise visual studio 2005 pour mon programme qui consiste à récupérer les info GPS.Lorsque je compile, une fenêtre d'erreur apparait ("visu


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales