Article View: be.comp.programming
Article #4965Re: async perl module op solaris
From: Dieter D'Hoker
Date: Mon, 26 May 2003 06:17
Date: Mon, 26 May 2003 06:17
149 lines
4412 bytes
4412 bytes
"stefke" <stefke@nospam.be> wrote in message
news:b9oqre$5dj$1@reader08.wxs.nl...
> Hallo,
>
> Ik heb hier een klein probleempje met de Async module voor perl. Het rare
> is dat het gedrag op solaris en windows (xp pro) verschillend is en ik
> geraak er niet meer wijs uit.
> Wat moet het doen:
> 1. een while loop 11 keer doorlopen en 10 keer daarvan een asynchroon
> process starten.
> 2. als een async process is afgelopen wordt de return waarde weggeschreven
> in een file.
>
> Dit is de code:
> use strict;
> use Async;
> my $continue = 1;
> my $i = 0;
> my ($retVal, $proc);
> open (FILE, ">test.txt") or die "cannot open file\n";
> while( $i<11)
> {
> if($proc)
> {
> while ( !( $proc->ready)){}
> $retVal = $proc->result;
> print "end of $retVal\n";
> }
> if( $i<10)
> {
> $proc = Async->new(sub { test($i)}) or die;
> }
> if( defined($retVal))
> {
> print FILE "test line $retVal\n";
> }
> $i++;
> }
> close FILE;
>
> sub test
> {
> my ( $param) = @_;
> sleep 1;
> return $param;
> }
>
> Redelijk simpel denk ik toch maar het werkt verschillend op solaris en
> windows. Op windows is het resultaat van het output bestand zoals ik het
> verwacht maar op solaris loopt er iets de mist in en ik weet niet meer wat
> het is.
>
> dit is de output van windows:
> test line 0
> test line 1
> test line 2
> test line 3
> test line 4
> test line 5
> test line 6
> test line 7
> test line 8
> test line 9
>
>
> en dit is die van solaris:
> test line 0
> test line 0
> test line 1
> test line 0
> test line 1
> test line 2
> test line 0
> test line 1
> test line 2
> test line 3
> test line 0
> test line 1
> test line 2
> test line 3
> test line 4
> test line 0
> test line 1
> test line 2
> test line 3
> test line 4
> test line 5
> test line 0
> test line 1
> test line 2
> test line 3
> test line 4
> test line 5
> test line 6
> test line 0
> test line 1
> test line 2
> test line 3
> test line 4
> test line 5
> test line 6
> test line 7
> test line 0
> test line 1
> test line 2
> test line 3
> test line 4
> test line 5
> test line 6
> test line 7
> test line 8
> test line 9
>
>
> Moest er iemand kunnen helpen, ik zal je eeuwig dankbaar zijn.
die Async module is vrij oud dacht ik ,
en gebruikt eigenlijk fork()
fork werd vroeger niet ondersteund door windows ,
nu word het geemuleerd door de nieuwe Threading capaciteiten van perl ...
Misschien is die Threading een optie voor jou ?
pas op je hebt er 2 verschillende implemetaties van ,
threads van 5.0 werd vervangen door "ithreads" in 5.6 daar allen al om
forking te emuleren ,
en in 5.8 helemaal geimplemteerd ...
het is dus idd uitkijken welk operating systeem / perl versie
(buiten het versienummer ook eens checken of het wel met threading support
gecompileerd is )
ahja , wat die Async betreft ,
die gebruitk dus fork ,
en fork start een heel nieuw onafhankelijk process op ,
dus als je op een machine bv. maar permissie hebt om 1 process te draaien ,
zal je daa rook problemen mee krijgen ...
omdat het sochtends is had ik niet veel zin om je code helemaal na te
pluizen kijken , sorry ;)
--
Dieter D'Hoker
http://dieter.dhoker.com/
news:free.nl.dieter.dhoker & news:alt.nl.fan.dieter.dhoker
Tetrinet SeRVer : TSRV.COM
Technical Details
Message-ID:
<basbjq$31gcs$1@ID-155251.news.dfncis.de>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-04!sn-xit-01!sn-xit-08!supernews.com!news.tele.dk!news.tele.dk!small.news.tele.dk!fu-berlin.de!uni-berlin.de!135.148-136-217.adsl.skynet.BE!not-for-mailReferences:
<b9oqre$5dj$1@reader08.wxs.nl>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: fcea4,d12dd9cf9c2536ee X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2003-05-25 23:19:04 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-04!sn-xit-01!sn-xit-08!supernews.com!news.tele.dk!news.tele.dk!small.news.tele.dk!fu-berlin.de!uni-berlin.de!135.148-136-217.adsl.skynet.BE!not-for-mail From: "Dieter D'Hoker" <webmaster@neverseenbefore.com> Newsgroups: be.comp.programming Subject: Re: async perl module op solaris Date: Mon, 26 May 2003 08:17:59 +0200 Organization: dieter.dhoker.com (post does not reflect views of Dieter D'Hoker) Lines: 151 Message-ID: <basbjq$31gcs$1@ID-155251.news.dfncis.de> References: <b9oqre$5dj$1@reader08.wxs.nl> NNTP-Posting-Host: 135.148-136-217.adsl.skynet.be (217.136.148.135) X-Trace: fu-berlin.de 1053929914 3195292 217.136.148.135 (16 [155251]) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165