Bonjour,
J'ai un probleme avec mes tie() (pour faire de la communication inter-process)
Je n'arrive pas a faire plusieurs tie() dans un même programme.
Quand je fais:
Code :
- my @tabProc_temp=();
- my @tabProcEnCours=();
- my @tabProcFini=();
- my $i=0;
- my %options = (
- create => 1,
- exclusive => 0,
- mode => 0644,
- destroy => 1,
- );
- print "tabProcFini: @tabProcFini\n";
- print "tabProcEnCours: @tabProcEnCours\n";
- print "tabProc_temp: @tabProc_temp\n";
- tie @tabProcFini, 'IPC::Shareable', 'data', \%options;
- tie @tabProcEnCours, 'IPC::Shareable', 'data', \%options;
- tie @tabProc_temp, 'IPC::Shareable', 'data', \%options;
- @tabProc_temp=@tabProc;
- print "tabProcFini: @tabProcFini\n";
- print "tabProcEnCours: @tabProcEnCours\n";
- print "tabProc_temp: @tabProc_temp\n";
|
Au lieu d'avoir @tabProcFini vide, @tabProcEnCours vide et seulement @tabProc_temp de renseigné, ils ont tous récupérés la valeur de @tabProc_temp.
En effet, le résultat est:
Code :
- tabProcFini:
- tabProcEnCours:
- tabProc_temp:
- tabProcFini: Job=HASH(0x91dce78) Job=HASH(0x9224304) Job=HASH(0x91dd070) Job=HASH(0x9217734) Job=HASH(0x91d3118) Job=HASH(0x92180a0) Job=HASH(0x91d7f5c) Job=HASH(0x921506c) Job=HASH(0x91ffd94)
- tabProcEnCours: Job=HASH(0x91d7fec) Job=HASH(0x91d7f80) Job=HASH(0x91dd868) Job=HASH(0x92180c4) Job=HASH(0x9200c58) Job=HASH(0x91f40cc) Job=HASH(0x91dd844) Job=HASH(0x91f3850) Job=HASH(0x91ffbf0)
- tabProc_temp: Job=HASH(0x92243d0) Job=HASH(0x91dd9d0) Job=HASH(0x92177ac) Job=HASH(0x91f3610) Job=HASH(0x9217c50) Job=HASH(0x9224010) Job=HASH(0x9217788) Job=HASH(0x91d7d28) Job=HASH(0x9217ee4)
|
Donc on voi bien que juste apres le tie(), ils recuperent tous les memes valeures.
Avez vous une idée sur la source du probleme?
Merci,
Cordialement,
Benjamin.
Message édité par Super_carotte le 14-12-2011 à 10:31:52