02. januar 2001 - 16:08Der er
9 kommentarer og 1 løsning
system kald
Jeg har et problem. Jeg laver først ét systemkald og bagefter endnu et. Man det andet kald bruger det første. DVS at jeg starter et program i det første. I det andet bruger jeg det program til noget.
Men som jeg ser det, eksekverer Perl det som en child process. Af en eller anden mærkelig grund starter den på den første, og fortsætter derefter med den anden - FØR den første er blevet færdig. Det gør at jeg ikke kan bruge det.
Er der nogen der ved hvordan man venter med at lave noget efter en child process er færdig(lavet med system kald)??? 400 point... også skal det gå hurtigt, da jeg skal bruge det ASAP
lav det med semaforer....Forklaring : sæt et flag når den første process/tråd er færdig(dit systemkald #1) tjeck inden den anden process/tråd startes om flaget er sat(dit systemkald #2)
Generelt er det sådan ( og sådan er jeg nød til at sige, da jeg ikke ved noget om perl ) at et system kald er færdigt når kontrollen overdrages til brugeren igen. MEDMINDRE, at system kaldet starter en proces/tråd, OG det gør den jo i det her tilfælde. Den starter din dæmon. Altså er du nød til at sjusse dig lidt frem til hvornår din dæmon er så langt at du kan starte din klient. Du må kalde Sleep ( eller et andet systemkald, der sætter din proces/tråd til at sove i et af dig defineret antal millisek. ) inden du starter klienten. Husk på at når et system kald som har startet en tråd eller en anden proces, så er det ikke muligt at sige hvornår denne proces/tråd terminere......
Håber du kan bruge det til noget, og hermed vil jeg give ordet til perl-eksperterne.....
I stedet for at sjusse kan man jo bare kalde sin connect i en løkke (evt med en sleep i) indtil den går godt, for så må dæmonen være vækket og i kampklar stand.
Ja ericjacobsen, men hvis man som jeg ikke har tjeck på hvilken tilstand der skal være sat når dæmonen er klar. Så må en sjus vist være eneste mulighed. MEN det er selvfølgelig din version der burde bruges, da man måske sjusser lidt for meget og dermed spiller \'kostbar\' CPU tid, på nul og nix
Jeg gætter nu på at at dæmonen er klar når mysql_connect ikke giver en fejl - hvilket kan testes på i både Perl og PHP. Med en passende tid for sleep spilder man ikke ret meget tid.
OK, men jeg vil nu sige at al spildt tid i en CPU er kostbart.... Over and out ---->
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.