Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]2923[/thread]

Modemgeschwindigkei simulieren (Seite 2)



<< |< 1 2 >| >> 19 Einträge, 2 Seiten
ptk
 2004-08-18 12:37
#29381 #29381
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=zaphod,17.08.2004, 14:44]Nein leider funktioniert das nicht so richtig. Oder muss ich
da noch irgend nen Modul für ActivePerl einbinden?[/quote]
Nein, fuer Pseudoforks braucht man nur ein hinreichend neues Perl (>= 5.6 oder so).
zaphod
 2004-08-24 11:09
#29382 #29382
User since
2003-12-07
22 Artikel
BenutzerIn
[default_avatar]
Also leider habe ich das immer noch nicht hinbekommen!
zaphod
 2004-08-24 11:16
#29383 #29383
User since
2003-12-07
22 Artikel
BenutzerIn
[default_avatar]
Ich habe Perl 5.8.4 (Activeperl) und bin mit dem Debugger
mal durch gegangen. Bei dem Fork gab es das Problem, das
der Debugger kein neues Fenster für den Kindprozess öffnen
konnte. Also kann ich leider garnicht überprüfen, woran es
liegt.
Windows nervt langsam :angry:
ptk
 2004-08-24 12:31
#29384 #29384
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Unter Unix wird lustigerweise ein neues xterm geoeffnet, wenn der Perl-Debugger auf ein fork trifft.
zaphod
 2004-08-25 09:51
#29385 #29385
User since
2003-12-07
22 Artikel
BenutzerIn
[default_avatar]
Das ist ja auch sinnvoll! Aber Windows kann leider nicht so
einfach eine neue Konsole öffnen :-(

EDIT: Oder hat jemand von euch das schon mal hinbekommen?
Wenn ja dann bitte posten, vielleicht bringt mich das dann
weiter!\n\n

<!--EDIT|zaphod|1093507543-->
zaphod
 2004-08-31 17:09
#29386 #29386
User since
2003-12-07
22 Artikel
BenutzerIn
[default_avatar]
Ich habe mal Michael Schilli gefragt, aber der konnte mir
bisher auch nicht weiterhelfen. Naja wenn ich weiter komme
werde ich berichten.
Falls aber jemand von Euch noch Ratschläge hat bin ich immer
offen dafür.

gruß zaphod
zaphod
 2004-09-01 09:17
#29387 #29387
User since
2003-12-07
22 Artikel
BenutzerIn
[default_avatar]
So hier die Mail von Michael Schilli:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Interessant, gerade habe ich es unter Windows XP probiert und der 
fork()-Aufruf liefert eine negative Zahl zurueck, um anzuzeigen, dass
fork() fehlschlug. fork() unter Activestate ist -- soviel ich weiss --
radikal unterschiedlich zum Unix-fork implementiert und nur eine billige
Adaption desselben -- kann gut sein, dass das gar nicht funktioniert. In
Windows gibt es ja keine richtigen Prozesse, nur Threads, und fork() ist
als problematisch bekannt. Vielleicht koennte man das Problem mit einer
Threading-Loesung angehen? Ich habe mich leider noch nicht naeher damit
befasst, da ich fast ausschliesslich unter Linux arbeite.

Ein weiteres Forum fuer diese Dinge ist perlmonks.com -- vielleicht
koennen die Experten dort weiterhelfen?

--
-- Mike
Mike Schilli


Da mich das umschreiben zu einer Threading-Lösung (noch) überfordert kann ich leider nichts mehr machen. Falls einer von Euch das kann und lust dazu hat würde ich mich freuen!

gruß zaphod
cocko
 2005-01-15 01:12
#29388 #29388
User since
2005-01-10
18 Artikel
BenutzerIn
[default_avatar]
perldoc Thread

Code: (dl )
1
2
3
4
5
6
7
8
9
[LUNA] c:\>perl -de 1

Loading DB routines from perl5db.pl version 1.25
Editor support available.

Enter h or `h h' for help, or `perldoc perldebug' for more help.

main::(-e:1): 1
DB<1> $child = fork


Ein Application Error dürfte da dann wohl doch nicht sehr üblich sein. Jedesmal erscheint ein

The instruction at "0x28084c26" referenced memory at "0x00000018". The memory could not be "read"

error. Kann das jemand nachvollziehen?
Strat
 2005-01-15 23:37
#29389 #29389
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
fork gibt's unter windows nicht, also musste da fuer das perl-fork eine andere loesung verwendet werden; perl handelt dies auf interpreterebene, d.h. ein fork klont den interpreter und laesst den neuen interpreter als neuen thread laufen und laesst den neuen thread dort starten, wo das fork steht. also kann es da auch keine echte prozessId geben, sondern perl vergibt dafuer eine pseudo-prozess-id. da eine positive schon vorhanden sein kann, wird dafuer eine negative integerzahl verwendet.
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< |< 1 2 >| >> 19 Einträge, 2 Seiten



View all threads created 2004-08-16 12:27.