[Vienna-pm] alarm signalhandling

Roland Giersig rgiersig at cpan.org
Wed Sep 26 05:38:08 PDT 2007


Das ist basic programming... :-)

Im %SIG darf eben genau eine Funktions-Referenz stecken und sonst nix
(sprich, keine andere Datenstruktur).

Du kannst das aber mit Closures erreichen, so wie Mond das
vorgeschlagen hat, indem du für jede Kombination ein eigenes Sub
definierst.

$SIG{ALRM} = sub { timeout(\&stop_services) };
...
$SIG{ALRM} = sub { timeout(\&start_services) };
etc.

Natürlich können das auch subs mit Namen sein:

sub stop_services_on_timeout {
  timeout(\&stop_services);
}

$SIG{ALRM} = \&stop_services_on_timeout;

LG, Roland

On 9/26/07, Baier Oliver <oliver.baier at lotterien.at> wrote:
> Ich hätte nie angenommen, dass die "Werte-Zuweisung"
> mit dem Signal-Aufruf zusammenhängt... Danke euch!
>
> interessehalber:
> Hängt das mit dem Signal-Init zusammen oder woher kommt das?
>
> lg
> Oliver
>
> > -----Ursprüngliche Nachricht-----
> > Von: franz schaefer [mailto:schaefer at mond.at]
> > Gesendet: Mittwoch, 26. September 2007 14:11
> > An: Baier Oliver
> > Cc: vienna-pm at pm.org
> > Betreff: Re: [Vienna-pm] alarm signalhandling
> >
> > > Leider scheitere ich sowohl mit
> > >
> > >     $SIG{ALRM} = \&timeout(&stop_services);
> > > als auch mit
> > >     $SIG{ALRM} = \&timeout('stop_services'); # und no strict 'refs'
> > >
> > > in der Weise, dass die Alarm-Aktion sofort durchgeführt wird
> > > ohne auf's Timeout zu warten.
> >
> > weil du es ja auch gleich ausfuehrst.
> >
> > du koenntest z.b.:
> >
> >   $SIG{ALRM} =  sub { timeout('argumente'); }
> >
> > schreiben. dann generierst du eine anonyme funktion die die
> > funktion timeout
> > mit den gewuenschten parametern aufruf wenn sie aufgerufen wird..
> >
> > lg mond.
> >
> >
> > --
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >    .                Franz Schaefer         GPG KeyID: CFA2F632
> >   ..  +43 699 106 14 590 +43 720502048  Fingerprint: 57C2 C0CC
> >   ...             schaefer at mond.at         6F0A 54C7 0D88 D37E
> >     ...          http://www.mond.at/       C17C CB16 CFA2 F632
> >
>
>
> > -----Ursprüngliche Nachricht-----
> > Von: vienna-pm-bounces+oliver.baier=lotterien.at at pm.org
> > [mailto:vienna-pm-bounces+oliver.baier=lotterien.at at pm.org]
> > Im Auftrag von Gerfried Fuchs
> > Gesendet: Mittwoch, 26. September 2007 14:06
> > An: vienna-pm at pm.org
> > Betreff: Re: [Vienna-pm] alarm signalhandling
> >
> >       Hi!
> >
> > Am Mittwoch, den 26.09.2007, 14:00 +0200 schrieb Baier Oliver:
> > > Kann man bei signal handlern generell keine Parameter mitgeben
> > > oder liegt's an "v5.8.5 built for x86_64-linux-thread-multi"?
> >
> >  Du übergibst eine Referenz auf eine Funktion - in die Referenz kannst
> > du keine Parameter dazu stecken ...
> >
> >  MfG,
> > Rhonda
> >
>
> Oesterreichische Lotterien Gesellschaft m.b.H., Rennweg 44, A-1038 Wien,
> FN 54472 g, Handelsgericht Wien, DVR-Nr: 0476706
> _______________________________________________
> Vienna-pm mailing list
> Vienna-pm at pm.org
> http://mail.pm.org/mailman/listinfo/vienna-pm
>


More information about the Vienna-pm mailing list