pthread_mutex_lock retourne argument non valide
Je suis en train de travailler sur du code C et je rencontre un problème avec la façon de verrouiller un mutex. Le code fait appel à une fonction et cette fonction verrouille un mutex pour assurer un pointeur de fichier n'est pas remplacé, cela fonctionne bien pour plusieurs instances, probablement de l'ordre de 10 à 20 appels distincts de la fonction appelée, mais sur le prochain appel, pthread_mutex_lock sera de retour avec un résultat de 22. J'ai ensuite mis ce résultat en strerror(); et a repris un argument invalide.
Ce qui n'est pas valide l'argument de moyens, merci pour toute aide que vous pouvez fournir.
OriginalL'auteur Boardy | 2012-10-08
Vous devez vous connecter pour publier un commentaire.
Semble que vous avez un problème de thread ou un sauvage point quelque part d'autre dans votre programme. Essayez d'imprimer la valeur de la mutex pointeur. Essayer d'avoir un autre thread que simplement verrouille le mutex, puis imprime dans un fichier journal le temps et que la serrure a été un succès, puis déverrouille le mutex. Je soupçonne que le problème n'est pas là où vous êtes à la recherche.
Aussi, comme d'autres l'ont dit ici, votre meilleur pari est de créer un petit programme de test qui montre le problème et de le poster ici. Les Chances sont que vous ne serez pas en mesure d'obtenir ce petit programme permettant de démontrer l'erreur. Puis ajouter lentement l'ensemble de votre code d'origine dans le petit programme jusqu'à ce que l'erreur revient. S'il revient, maintenant, vous savez ce qui a causé le problème. Si ce n'est pas de retour, vous avez terminé.
OriginalL'auteur vy32
22 est
ENVAL
code d'erreur qui signifie invlalid argument. Assurez-vous que vous avez initilized vous mutex, ou si vous avez unitilized quelque part.Aussi l'homme pthread_mutex_lock dit:
Je n'arrive pas à comprendre cela, mais cela signifie probablement que vous avez besoin de changer de priorité du thread. Je ne suis pas sûr. Peut-être que quelqu'un d'autre peut faire la lumière sur elle.
OriginalL'auteur tozka