J'ai un problème unique. Deux processus (P0 et P1) tentent d'accéder à un fichier. P0 écrit des informations dans le fichier et P1 lit les informations. Il y a une condition de concurrence entre les deux dans laquelle P1 est en train de lire avant que P0 ait fini d'écrire. J'ai envisagé d'utiliser des verrous, des sémaphores, etc. Cependant, P1 existe dans un ensemble de code que je ne suis pas autorisé à modifier de quelque façon que ce soit, et il n'a actuellement aucune implémentation pour supporter les corrections proposées ci-dessus.Exclusion mutuelle sans toucher aux deux processus
Est-il possible de supprimer cette condition de concurrence sans toucher les deux ensembles de codes?
C'était en fait ma solution temporaire au problème. Il résout une grande partie du problème (lié à l'affichage d'une image à l'écran), mais les éléments du problème persistent. Je soupçonne que l'opération de renommage n'est pas complètement atomique. Il fonctionne sur une machine Linux, ce que j'ai lu n'est pas complètement compatible avec le standard POSIX. – Mark
Que se passe-t-il si vous supprimez B en premier, puis renommez A en B? Est-ce que P1 renvoie une erreur et quitte? – Cahit
Le programme se poursuit normalement. J'ai remarqué que la suppression du fichier non temporaire n'a aucun effet sur le conflit. P1 se trouve également être le code du serveur web, que je n'ai aucun moyen de voir. Il se peut qu'il y ait trop de paramètres inconnus dans ce numéro. – Mark