🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #4965

Re: async perl module op solaris

#4965
From: Dieter D'Hoker
Date: Mon, 26 May 2003 06:17
149 lines
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-mail
References: <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