le 29/01/2006 à 17:36
LupusMic
Pour préciser le problème du lock sous Microsoft Windows : le lock des fichiers est en général obligatoire, parce que Apache fonctionne en environnement multithread.
Que PHP fournisse un mécanisme de lock ne veut pas dire qu'il est obligatoire. Posix fourni aussi les locks, mais il faut les demander explicitement.
En lisant le code source de PHP 5.1, on ne voit nul part que PHP lock le fichier avant de le lire et de l'écrire.
En ce qui concerne ton protocole, es-tu certain que la première exécution du script n'était pas finie lors du démarrage du second ? J'ai mis volontairement un nombre important pour m'assurer que j'aurais le temps de lancer les suivants. Mais ça peut ne pas suffire si tu as un processeur supérieur.
Ensuite, le bogue que je constate me fait penser à celui de l'entier incrémenté dans le registre processeur et pas mis à jour dans la RAM, entraînant la nécessité d'utiliser le mot clé « volatile ».
Bon, je vais compléter le script de manière à contrôler le début et la fin de l'exécution, et vous posterais le code dans le Wall.
À+
Que PHP fournisse un mécanisme de lock ne veut pas dire qu'il est obligatoire. Posix fourni aussi les locks, mais il faut les demander explicitement.
En lisant le code source de PHP 5.1, on ne voit nul part que PHP lock le fichier avant de le lire et de l'écrire.
En ce qui concerne ton protocole, es-tu certain que la première exécution du script n'était pas finie lors du démarrage du second ? J'ai mis volontairement un nombre important pour m'assurer que j'aurais le temps de lancer les suivants. Mais ça peut ne pas suffire si tu as un processeur supérieur.
Ensuite, le bogue que je constate me fait penser à celui de l'entier incrémenté dans le registre processeur et pas mis à jour dans la RAM, entraînant la nécessité d'utiliser le mot clé « volatile ».
Bon, je vais compléter le script de manière à contrôler le début et la fin de l'exécution, et vous posterais le code dans le Wall.
À+