bonjour,
je vais vous exposer directement mon problème.
je développe en perl mais le langage n'a pas top d'importance je pense.
donc,
mon script rempli une file que mes threads consomment.
il s'agit en fait de fichiers et de leur dossier (hash).
le pb est le suivant : chaque thread doit passer dans le dossier du fichier courant pour effectuer quelques traitement dans CE dossier (téléchargement, uncompress, tar -xvf)
bref... j'ai remarquer que les threads n'ont pas leur propre dossier courant d'éxécution. il est commun à tous et au prog père.
Il est donc nécessaire d'utiliser une sémaphore pour bloquer le répertoire courant le temps de lancer une commande.
Mon souci : je ne veux pas attendre la fin de la commande avant de débloquer le dossier courant sinon je perds tout l'intérêt d'utiliser des threads... Cependant je ne peux pas lancer la commande en arrière plan puisque les traitements à suivre nécessite que les précédents soient bien finis.
bref... je n'ai aucune idée de comment faire :s
il faudrait bloquer un sémaphore pendant un labs de temps durant lequel une commande puisse être lancée. elle doit pouvoir continuer normalement mais ne plus bloquer le sémaphore.
j'espère que vous avez compris mon pb.
merci pour votre aide
++
Partager