Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re^3: Signals in Strawberry Perl: Name or number?

by Marshall (Canon)
on Sep 13, 2009 at 04:33 UTC ( [id://794963]=note: print w/replies, xml ) Need Help??


in reply to Re^2: Signals in Strawberry Perl: Name or number?
in thread Signals in Strawberry Perl: Name or number?

When I test code with ALRM signal, I fiddle with the alarm($num) parameter and often use sleep() to cause the alarm to "trigger" during testing. There are problems with signal handling...in general, there is no way to "safely" continue executing a process after an ALRM signal because many OS functions are not re-entrant or even re-startable by any means.

Update: I strike this last sentence because it upset some folks. No offense was intended. I have no interest in obfuscated, obscure code although I do see that some folks have fun with this as an "art form".

The original question was, why doesn't this code work?

sub verse4 { my $boy; $SIG{ALRM} = sub { say "slip n slide" }; ride( $boy ), kill (ALRM, $$) for (1 .. 3); sleep 1; map { $_++ } ($ice_cream, $cake); } sub ride { say "Whee!" };

Replies are listed 'Best First'.
Re^4: Signals in Strawberry Perl: Name or number?
by ikegami (Patriarch) on Sep 13, 2009 at 05:25 UTC

    There's no difference between receiving an alarm that was sent via alarm or via kill. What makes you think that the latter can trigger signals when the former can't?

    What's obfuscated about sending a signal with kill, whose very purpose is to send signals?

      There's no difference between receiving an alarm that was sent via alarm or via kill. What makes you think that the latter can trigger signals when the former can't?

      I didn't say that there was a difference. I explained very clearly how to use the alarm signal in a normal application. A signal is a "message" from the OS.

      What's obfuscated about sending a signal with kill, whose very purpose is to send signals?

      What is obfuscated is this "poetry" idea and using language constructs in "unnatural ways". I have no problem with strange code as an art form.

        I didn't say that there was a difference.

        It looks like I misunderstood you.

        there is no way to "safely" continue executing a process after an ALRM signal because many OS functions are not [...] even re-startable by any means.

        What gives you that idea?

        What is obfuscated is this "poetry" idea

        Again, how is kill ALRM, $$ obfuscation/poetry?

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://794963]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (4)
As of 2024-03-29 01:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found