total descendants:: total children::1 |
poradte prosim ako by sa dala spravit synchronizacia medzi parentom a childom po forku totiz potrebujem nieco spravit este v parente hend po forku ked viem pid childu (ulozit pid do hashu) a obcas sa stane ze scheduler uprednostni childa a robi to zlobu (ked child sa vykona cely, exitne a parent az potom vlozi pid do hashu) rozmyslal som nad flock(), len stav flocku sa dedi, takze po forku closnut lockovany subor, otvorit ho znovu, locknut/unlocknut a mozme robit, je to ok ? open(LOCK,"+>","/var/run/aplikacia.lock"); while(1) { ... flock(LOCK,LOCK_EX); my $pid = fork(); defined $pid || logmsg("Cannot fork: $!"); # toto robi parent if ($pid) { $pidtohosts{$pid}=$clientip; flock(LOCK,LOCK_UN); } # parent dalej neriesi next if $pid; # toto robi iba child close(LOCK); open(LOCK,"+>","/var/run/aplikacia.lock"); flock(LOCK,LOCK_SH); flock(LOCK,LOCK_UN); handle_client(); } |
| |||||||||||||||||||||||