Priorität heruntersetzen

Gibt es die Möglichkeit, für einen Abschnitt eines Perlprogrammes
die Priorität herabzusetzen?

Unter Bash kann ich zwar mit nice ein ganzes Script herunterstufen, aber
geht das auch innerhalb eines Scriptes?

mfg
Matthias Taube
Matthias Taube [ Mo, 05 Juni 2006 19:59 ] [ ID #1342922 ]

Re: Prioritätheruntersetzen

Matthias Taube wrote:

> Gibt es die Möglichkeit, für einen Abschnitt eines Perlprogrammes
> die Priorität herabzusetzen?
>
> Unter Bash kann ich zwar mit nice ein ganzes Script herunterstufen, aber
> geht das auch innerhalb eines Scriptes?

Mit dem Modul POSIX geht das. POSIX::nice() ist das, was du suchst. Die
Beschreibung findest du unter perldoc POSIX und man 2 nice.

Gruss

Roman°
--
Ärger in den NGs? Frust im Usenet?
IRC-Freenode: #usenet-friends hilft weiter.
Besuch mich auf http://albasani.net/cgiirc/irc.cgi
Roman Racine [ Mo, 05 Juni 2006 20:12 ] [ ID #1342923 ]

Re: Priorität heruntersetzen

Roman Racine schrieb:

> Mit dem Modul POSIX geht das. POSIX::nice() ist das, was du suchst. Die
> Beschreibung findest du unter perldoc POSIX und man 2 nice.

Danke, das habe ich gesucht.

Funktioniert eigentlich

POSIX::nice(10);

.... Perl-Code ...

POSIX::nice(-10);

trotz der Aussage: "Normal user processes can only be more polite." in
der Doku?

mfg
Matthias Taube
Matthias Taube [ Mo, 05 Juni 2006 20:37 ] [ ID #1342924 ]

Re: Prioritätheruntersetzen

Matthias Taube <no_html.max50kb [at] nurfuerspam.de> wrote:

> Funktioniert eigentlich
>
> POSIX::nice(10);
>
> ... Perl-Code ...
>
> POSIX::nice(-10);
>
> trotz der Aussage: "Normal user processes can only be more polite."
> in der Doku?

Nein. Warum hast du das nicht einfach ausprobiert?

Paul
Paul Hink [ Mo, 05 Juni 2006 20:57 ] [ ID #1342925 ]

Re: Prioritätheruntersetzen

Roman Racine <roman.racine [at] gmx.de> wrote:

> POSIX::nice() ist das, was du suchst.

Alternativ die Perl-Funktion setpriority (`perldoc -f setpriority`,
`man 2 setpriority`).

Paul
Paul Hink [ Mo, 05 Juni 2006 21:06 ] [ ID #1342926 ]

Re: �

Paul Hink schrieb:

> Nein. Warum hast du das nicht einfach ausprobiert?

Weil es nicht so einfach ist die effektive Priorität des eigenen Prozess
herauszufinden.

Wobei mir gerade als Möglichkeit "system ("ps alx") einfällt.

mfg
Matthias Taube
Matthias Taube [ Mo, 05 Juni 2006 21:05 ] [ ID #1342927 ]

Re: ?

Matthias Taube <no_html.max50kb [at] nurfuerspam.de> wrote:

> Paul Hink schrieb:
>
>> Nein. Warum hast du das nicht einfach ausprobiert?
>
> Weil es nicht so einfach ist die effektive Priorität des eigenen
> Prozess herauszufinden.
>
> Wobei mir gerade als Möglichkeit "system ("ps alx") einfällt.

Alternativ eins davon:

| system(nice);
| print getpriority(PRIO_PROCESS, 0) . "\n";

Oder man prüft direkt, ob POSIX::nice einen Fehler zurückgemeldet hat
(das ist ohnehin empfehlenswert):

| $ perl -e 'use POSIX qw(nice); nice(10) || die "+10: $!"; nice(-10) || die "-10: $!";'
| -10: Permission denied at -e line 1.
| $

Paul
Paul Hink [ Mo, 05 Juni 2006 21:31 ] [ ID #1342928 ]
Perl » de.comp.lang.perl.misc » Priorität heruntersetzen

Vorheriges Thema: Einfachen C-Code parsen
Nächstes Thema: Socket, buffering?